Function at 0x140088910
Capabilities:
Convert ip address from string
Get local ipv4 addresses
Get socket information

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x258
mov r15, qword [rcx + 0x720]
movzx ebx, word [rcx + 0x230]
mov qword [rsp + 0x2a8], rdx
mov r12, rcx
mov rbp, r8
mov r14d, r9d
mov qword [rsp + 0x48], 0
test r15, r15
jne 0x140088970
xor eax, eax
test bx, bx
jne 0x140088970
add rsp, 0x258
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea r13, [rsp + 0x50]
mov ecx, 0x10
xor eax, eax
movzx esi, word [r12 + 0x232]
mov rdi, r13
rep stosq qword [rdi], rax
test r15, r15
je 0x1400889a4
mov rcx, r15
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
cmp rax, 0xfe
jbe 0x140088a90
cmp r14d, 0x17
je 0x140088de0
xor edi, edi
cmp r14d, 2
je 0x140088e30
mov r14, qword [sym.imp.WS2_32.dll_bind]
mov r15, qword [sym.imp.WS2_32.dll_ntohs]
jmp 0x1400889e8
sub esi, 1
test esi, esi
jle 0x140088a48
add bx, 1
je 0x140088a48
movzx ecx, bx
call r15
mov word [rsp + 0x52], ax
mov r8d, edi
mov rdx, r13
mov rcx, rbp
call r14
test eax, eax
js 0x1400889d0
lea rdx, [rsp + 0xd0]
xor eax, eax
mov ecx, 0x10
mov dword [rsp + 0x44], pe_nt_image_headers64
mov rdi, rdx
lea r8, [rsp + 0x44]
rep stosq qword [rdi], rax
mov rcx, rbp
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
js 0x140088e6f
mov rax, qword [rsp + 0x2a8]
or byte [rax + 0x342], 1
xor eax, eax
jmp 0x140088957
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, [rsp + 0x150]
mov r8d, 0x100
mov dword [r12 + 0xc34], eax
mov ecx, eax
mov ebx, eax
call fcn.14007f7b0
mov r8d, ebx
lea rdx, str.bind_failed_with_errno__d:__s
mov rcx, r12
mov r9, rax
call fcn.140072600
mov eax, 0x2d
jmp 0x140088957
mov qword [rsp + 0x150], 0
mov qword [rsp + 0x158], 0
mov qword [rsp + 0x160], 0
mov qword [rsp + 0x168], 0
mov qword [rsp + 0x170], 0
mov qword [rsp + 0x178], 0
mov qword [rsp + 0x180], 0
mov qword [rsp + 0x188], 0
mov qword [rsp + 0x190], 0
mov qword [rsp + 0x198], 0
mov qword [rsp + 0x1a0], 0
mov qword [rsp + 0x1a8], 0
mov qword [rsp + 0x1b0], 0
mov qword [rsp + 0x1b8], 0
mov qword [rsp + 0x1c0], 0
mov qword [rsp + 0x1c8], 0
mov qword [rsp + 0x1d0], 0
mov qword [rsp + 0x1d8], 0
mov qword [rsp + 0x1e0], 0
mov qword [rsp + 0x1e8], 0
mov qword [rsp + 0x1f0], 0
mov qword [rsp + 0x1f8], 0
mov qword [rsp + 0x200], 0
mov qword [rsp + 0x208], 0
mov qword [rsp + 0x210], 0
mov qword [rsp + 0x218], 0
mov qword [rsp + 0x220], 0
mov qword [rsp + 0x228], 0
mov qword [rsp + 0x230], 0
mov qword [rsp + 0x238], 0
mov qword [rsp + 0x240], 0
mov qword [rsp + 0x248], 0
cmp byte [r15], 0x69
jne 0x140088ca8
cmp byte [r15 + 1], 0x66
jne 0x140088ca8
cmp byte [r15 + 2], 0x21
jne 0x140088ca8
mov rax, qword [rsp + 0x2a8]
lea rdi, [rsp + 0x150]
add r15, 3
mov dword [rsp + 0x28], 0x100
mov qword [rsp + 0x20], rdi
mov edx, dword [rsp + 0x2c0]
mov r9, r15
mov ecx, r14d
mov r8d, dword [rax + 0x54c]
call fcn.14008d7c0
cmp eax, 1
je 0x140088dbd
cmp eax, 2
je 0x140088e08
test eax, eax
je 0x140088f33
and byte [r12 + 0x11fc], 0xf7
mov r8, r15
lea rdx, str.Couldnt_bind_to__s
mov rcx, r12
call fcn.140072600
mov eax, 0x2d
jmp 0x140088957
mov r8d, 5
mov rdx, r15
lea rcx, str.host_
call sub.api_ms_win_crt_string_l1_1_0.dll_strncmp
test eax, eax
je 0x140088e58
mov rax, qword [rsp + 0x2a8]
mov r9, r15
mov ecx, r14d
lea rdi, [rsp + 0x150]
mov dword [rsp + 0x28], 0x100
mov edx, dword [rsp + 0x2c0]
mov qword [rsp + 0x20], rdi
mov r8d, dword [rax + 0x54c]
call fcn.14008d7c0
cmp eax, 1
je 0x140088dbd
cmp eax, 2
je 0x140088e08
mov rax, qword [rsp + 0x2a8]
movzx edi, byte [rax + 0x557]
cmp r14d, 2
je 0x140088eae
cmp r14d, 0x17
jne 0x140088d3b
mov rax, qword [rsp + 0x2a8]
mov byte [rax + 0x557], 2
lea r10, [rsp + 0x48]
xor r9d, r9d
mov rdx, r15
mov rcx, r12
mov qword [rsp + 0x20], r10
mov r8d, 0x50
mov qword [rsp + 0x38], r10
call fcn.1400745b0
mov r10, qword [rsp + 0x38]
cmp eax, 1
je 0x140088f23
mov rax, qword [rsp + 0x2a8]
mov byte [rax + 0x557], dil
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x140088c80
mov rcx, qword [rax]
lea rdi, [rsp + 0x150]
mov r8d, 0x100
mov rdx, rdi
call fcn.140074090
mov rdx, qword [rsp + 0x48]
mov rcx, r12
call fcn.140074b40
mov rax, qword [rsp + 0x48]
mov rax, qword [rax]
cmp dword [rax + 4], r14d
je 0x140088e08
mov eax, 1
jmp 0x140088957
lea r8, [rsp + 0x58]
mov rdx, rdi
mov ecx, 0x17
call qword [sym.imp.WS2_32.dll_inet_pton]
test eax, eax
jle 0x140088df8
nop
mov ecx, 0x17
mov word [rsp + 0x50], cx
movzx ecx, bx
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x52], ax
mov edi, 0x1c
jmp 0x1400889ba
cmp r14d, 0x17
je 0x140088eba
cmp r14d, 2
jne 0x140088e68
lea r8, [rsp + 0x54]
mov rdx, rdi
mov ecx, 2
call qword [sym.imp.WS2_32.dll_inet_pton]
test eax, eax
jle 0x140088e68
nop
mov edx, 2
movzx ecx, bx
mov edi, 0x10
mov word [rsp + 0x50], dx
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x52], ax
jmp 0x1400889ba
add r15, 5
jmp 0x140088d0d
xor edi, edi
jmp 0x1400889ba
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, [rsp + 0x150]
mov r8d, 0x100
mov dword [r12 + 0xc34], eax
mov ecx, eax
mov ebx, eax
call fcn.14007f7b0
mov r8d, ebx
lea rdx, str.getsockname___failed_with_errno__d:__s
mov rcx, r12
mov r9, rax
call fcn.140072600
jmp 0x140088c9b
mov byte [rax + 0x557], 1
jmp 0x140088d3b
mov edx, 0x25
mov rcx, rdi
call sub.api_ms_win_crt_private_l1_1_0.dll_strchr
mov r14, rax
test rax, rax
je 0x140088dc7
mov byte [rax], 0
lea r8, [rsp + 0x58]
mov rdx, rdi
mov ecx, 0x17
call qword [sym.imp.WS2_32.dll_inet_pton]
test eax, eax
jle 0x140088df8
mov eax, 0x17
movzx ecx, bx
mov word [rsp + 0x50], ax
call qword [sym.imp.WS2_32.dll_htons]
lea rcx, [r14 + 1]
mov r8d, 0xa
xor edx, edx
mov word [rsp + 0x52], ax
call sub.api_ms_win_crt_convert_l1_1_0.dll_strtoul
mov dword [rsp + 0x68], eax
jmp 0x140088df8
mov rdx, r10
mov rcx, r12
call fcn.140069ab0
jmp 0x140088d6c
mov r8, r15
lea rdx, str.Couldnt_bind_to_interface__s
mov rcx, r12
call fcn.140072600
jmp 0x140088c9b