Function at 0x140098ad0
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 0x140098b30
xor eax, eax
test bx, bx
jne 0x140098b30
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 0x140098b64
mov rcx, r15
call sym.strlen
cmp rax, 0xfe
jbe 0x140098c50
cmp r14d, 0x17
je 0x140098fa0
xor edi, edi
cmp r14d, 2
je 0x140098ff0
mov r14, qword [sym.imp.WS2_32.dll_bind]
mov r15, qword [sym.imp.WS2_32.dll_ntohs]
jmp 0x140098ba8
sub esi, 1
test esi, esi
jle 0x140098c08
add bx, 1
je 0x140098c08
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 0x140098b90
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 0x14009902f
mov rax, qword [rsp + 0x2a8]
or byte [rax + 0x342], 1
xor eax, eax
jmp 0x140098b17
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 sym.Curl_strerror
mov r8d, ebx
lea rdx, str.bind_failed_with_errno__d:__s
mov rcx, r12
mov r9, rax
call sym.Curl_failf
mov eax, 0x2d
jmp 0x140098b17
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 0x140098e68
cmp byte [r15 + 1], 0x66
jne 0x140098e68
cmp byte [r15 + 2], 0x21
jne 0x140098e68
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 sym.Curl_if2ip
cmp eax, 1
je 0x140098f7d
cmp eax, 2
je 0x140098fc8
test eax, eax
je 0x1400990f3
and byte [r12 + 0x11fc], 0xf7
mov r8, r15
lea rdx, str.Couldnt_bind_to__s
mov rcx, r12
call sym.Curl_failf
mov eax, 0x2d
jmp 0x140098b17
mov r8d, 5
mov rdx, r15
lea rcx, str.host_
call sym.strncmp
test eax, eax
je 0x140099018
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 sym.Curl_if2ip
cmp eax, 1
je 0x140098f7d
cmp eax, 2
je 0x140098fc8
mov rax, qword [rsp + 0x2a8]
movzx edi, byte [rax + 0x557]
cmp r14d, 2
je 0x14009906e
cmp r14d, 0x17
jne 0x140098efb
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 sym.Curl_resolv
mov r10, qword [rsp + 0x38]
cmp eax, 1
je 0x1400990e3
mov rax, qword [rsp + 0x2a8]
mov byte [rax + 0x557], dil
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x140098e40
mov rcx, qword [rax]
lea rdi, [rsp + 0x150]
mov r8d, 0x100
mov rdx, rdi
call sym.Curl_printable_address
mov rdx, qword [rsp + 0x48]
mov rcx, r12
call sym.Curl_resolv_unlock
mov rax, qword [rsp + 0x48]
mov rax, qword [rax]
cmp dword [rax + 4], r14d
je 0x140098fc8
mov eax, 1
jmp 0x140098b17
lea r8, [rsp + 0x58]
mov rdx, rdi
mov ecx, 0x17
call qword [sym.imp.WS2_32.dll_inet_pton]
test eax, eax
jle 0x140098fb8
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 0x140098b7a
cmp r14d, 0x17
je 0x14009907a
cmp r14d, 2
jne 0x140099028
lea r8, [rsp + 0x54]
mov rdx, rdi
mov ecx, 2
call qword [sym.imp.WS2_32.dll_inet_pton]
test eax, eax
jle 0x140099028
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 0x140098b7a
add r15, 5
jmp 0x140098ecd
xor edi, edi
jmp 0x140098b7a
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 sym.Curl_strerror
mov r8d, ebx
lea rdx, str.getsockname___failed_with_errno__d:__s
mov rcx, r12
mov r9, rax
call sym.Curl_failf
jmp 0x140098e5b
mov byte [rax + 0x557], 1
jmp 0x140098efb
mov edx, 0x25
mov rcx, rdi
call sym.strchr
mov r14, rax
test rax, rax
je 0x140098f87
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 0x140098fb8
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 sym.strtoul
mov dword [rsp + 0x68], eax
jmp 0x140098fb8
mov rdx, r10
mov rcx, r12
call sym.Curl_resolver_wait_resolv
jmp 0x140098f2c
mov r8, r15
lea rdx, str.Couldnt_bind_to_interface__s
mov rcx, r12
call sym.Curl_failf
jmp 0x140098e5b