Function at 0x5f9fd0
Capabilities:
Resolve dns

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x268
lea rbp, [rsp + 0x80]
mov r14, r8
mov rbx, rdx
mov rsi, rcx
lea rcx, [rbp + 0x128]
call sym._ZN4core3net6parser91__LT_impl_u20_core..str..traits..FromStr_u20_for_u20_core..net..socket_addr..SocketAddr_GT_8from_str17h1a
cmp word [rbp + 0x128], 2
jne 0x5fa096
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x50], r14
mov qword [rbp - 0x48], 0
mov qword [rbp - 0x40], r14
mov byte [rbp - 0x30], 1
movabs rax, 0x3a0000003a
mov qword [rbp - 0x38], rax
lea rcx, [rbp + 0x170]
lea rdx, [rbp - 0x58]
call sym._ZN88__LT_core..str..pattern..CharSearcher_u20_as_u20_core..str..pattern..ReverseSearcher_GT_15next_match_back17h480e3a64be9ee
cmp qword [rbp + 0x170], 0
je 0x5fa0e7
mov r8, qword [rbp + 0x180]
lea rcx, str.invalid_port_value
sub r14, r8
je 0x5fa0ee
mov rdi, qword [rbp + 0x178]
add r8, rbx
cmp r14, 1
jne 0x5fa10d
movzx eax, byte [r8]
cmp eax, 0x2b
je 0x5fa0ee
mov r14d, 1
cmp eax, 0x2d
je 0x5fa0ee
jmp 0x5fa158
movzx eax, byte [0x0083c308]
mov edx, 0x20
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h5a8f05db6a24897c
test rax, rax
je 0x5fa61f
movdqu xmm0, xmmword [rbp + 0x128]
movdqu xmm1, xmmword [rbp + 0x138]
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
mov rcx, rax
add rcx, 0x20
mov qword [rsi], rax
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], 1
mov qword [rsi + 0x18], rcx
jmp 0x5fa0f9
lea rcx, str.invalid_socket_address
mov qword [rsi + 8], rcx
mov qword [rsi], 0
add rsp, 0x268
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp byte [r8], 0x2b
jne 0x5fa152
inc r8
lea rax, [r14 - 1]
cmp r14, 6
mov r14, rax
jb 0x5fa158
xor r9d, r9d
mov r10w, 0xa
xor eax, eax
nop dword [rax]
mul r10w
jo 0x5fa0ee
movzx edx, byte [r8 + r9]
add edx, 0xffffffd0
cmp edx, 9
ja 0x5fa0ee
add ax, dx
jb 0x5fa0ee
inc r9
cmp r14, r9
jne 0x5fa130
jmp 0x5fa183
cmp r14, 5
jae 0x5fa123
xor edx, edx
xor eax, eax
nop dword [rax]
movzx r9d, byte [r8 + rdx]
add r9d, 0xffffffd0
cmp r9d, 9
ja 0x5fa0ee
add eax, eax
lea eax, [rax + rax*4]
add eax, r9d
inc rdx
cmp r14, rdx
jne 0x5fa160
mov word [rbp + 0x1e6], ax
mov rax, qword [0x0083c110]
cmp rax, 3
jne 0x5fa5da
lea r15, [rbp + 0x1e6]
mov qword [rbp + 0x150], r15
cmp rdi, 0x17f
ja 0x5fa5fa
lea r14, [rbp - 0x58]
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sym.memcpy
mov byte [rbp + rdi - 0x58], 0
lea rax, [rdi + 1]
cmp rdi, 0xe
ja 0x5fa1f8
xor edx, edx
nop dword [rax]
cmp byte [rbp + rdx - 0x58], 0
je 0x5fa295
inc rdx
cmp rax, rdx
jne 0x5fa1e0
jmp 0x5fa307
lea rcx, [rbp - 0x51]
and rcx, 0xfffffffffffffff8
sub rcx, r14
je 0x5fa22a
xor edx, edx
nop word [rax + rax]
cmp byte [rbp + rdx - 0x58], 0
je 0x5fa295
inc rdx
cmp rcx, rdx
jne 0x5fa210
lea rdx, [rdi - 0xf]
cmp rcx, rdx
jbe 0x5fa22e
jmp 0x5fa26e
lea rdx, [rdi - 0xf]
movdqa xmm0, xmmword [0x00727e90]
movabs r8, 0x8080808080808080
movdqu xmm1, xmmword [rbp + rcx - 0x58]
movdqa xmm2, xmm1
paddq xmm2, xmm0
pandn xmm1, xmm2
pshufd xmm2, xmm1, 0xee
por xmm2, xmm1
movq r9, xmm2
test r9, r8
jne 0x5fa26e
add rcx, 0x10
cmp rcx, rdx
jbe 0x5fa240
sub rax, rcx
je 0x5fa307
lea r8, [rcx + rbp]
add r8, 0xffffffffffffffa8
xor edx, edx
cmp byte [r8 + rdx], 0
je 0x5fa292
inc rdx
cmp rax, rdx
jne 0x5fa281
jmp 0x5fa307
add rdx, rcx
cmp rdx, rdi
jne 0x5fa307
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x170], xmm0
movdqa xmmword [rbp + 0x190], xmm0
movdqa xmmword [rbp + 0x180], xmm0
mov dword [rbp + 0x178], 1
mov qword [rbp + 0x1a8], 0
lea rcx, [rbp - 0x58]
lea r8, [rbp + 0x170]
lea r9, [rbp + 0x1a8]
xor edx, edx
call sub.ws2_32.dll_getaddrinfo
test eax, eax
je 0x5fa5b0
call sub.ws2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov edx, 1
mov qword [rbp + 0x1c8], rax
jmp 0x5fa31a
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rbp + 0x1c8], rax
mov edx, 1
mov rcx, qword [rbp + 0x1c8]
test rdx, rdx
jne 0x5fa0ee
mov rax, qword [rbp + 0x1d0]
movzx r8d, word [rbp + 0x1d8]
mov r9d, dword [rbp + 0x1da]
mov dword [rbp + 0x168], r9d
movzx r10d, word [rbp + 0x1de]
mov word [rbp + 0x16c], r10w
mov word [rbp + 0x1e6], r8w
lea rdx, [rbp + 0x1c8]
mov qword [rbp + 0x1c8], rcx
mov qword [rbp + 0x1d0], rax
mov word [rbp + 0x1d8], r8w
mov dword [rbp + 0x1da], r9d
mov word [rbp + 0x1de], r10w
mov qword [rbp + 0x1c0], r15
lea rcx, [rbp - 0x58]
call sym.__std::sys_common::net::LookupHost_as_core::iter::traits::iterator::Iterator_::next::h9562f7b702196898
movzx edi, word [rbp - 0x58]
cmp di, 2
jne 0x5fa3bf
mov rcx, qword [rbp + 0x1c8]
call sub.ws2_32.dll_freeaddrinfo
mov eax, 4
xor edi, edi
xor ecx, ecx
jmp 0x5fa595
mov qword [rbp + 0x148], rsi
mov r14d, dword [rbp - 0x56]
movzx r15d, word [rbp - 0x52]
mov eax, dword [rbp - 0x40]
mov dword [rbp + 0x180], eax
movdqu xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp + 0x170], xmm0
movzx r13d, word [rbp - 0x3c]
movzx r12d, word [rbp - 0x3a]
mov rax, qword [rbp + 0x1c0]
movzx esi, word [rax]
movzx eax, byte [0x0083c308]
mov edx, pe_nt_image_headers64
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::h5a8f05db6a24897c
test rax, rax
je 0x5fa62e
mov rbx, rax
test di, di
cmovne r13d, esi
cmove r15d, esi
mov eax, dword [rbp + 0x180]
mov dword [rbx + 0x18], eax
movaps xmm0, xmmword [rbp + 0x170]
movups xmmword [rbx + 8], xmm0
mov word [rbx], di
mov dword [rbx + 2], r14d
mov word [rbx + 6], r15w
mov word [rbx + 0x1c], r13w
mov word [rbx + 0x1e], r12w
mov qword [rbp + 0x1a8], 4
mov qword [rbp + 0x1b0], rbx
mov qword [rbp + 0x1b8], 1
movdqu xmm0, xmmword [rbp + 0x1c0]
movdqu xmm1, xmmword [rbp + 0x1d0]
movdqa xmmword [rbp + 0x180], xmm1
movdqa xmmword [rbp + 0x170], xmm0
mov edi, 1
mov r13d, 0x20
jmp 0x5fa4ef
mov rbx, qword [rbp + 0x1b0]
mov rdx, r12
mov word [rbx + r13], r14w
mov dword [rbx + r13 + 2], edi
mov word [rbx + r13 + 6], si
movdqa xmm0, xmmword [rbp + 0x150]
movdqu xmmword [rbx + r13 + 8], xmm0
mov eax, dword [rbp + 0x160]
mov dword [rbx + r13 + 0x18], eax
mov word [rbx + r13 + 0x1c], r15w
movzx eax, word [rbp + 0x1e4]
mov word [rbx + r13 + 0x1e], ax
inc rdx
mov qword [rbp + 0x1b8], rdx
add r13, 0x20
mov rdi, rdx
lea rcx, [rbp - 0x58]
lea rdx, [rbp + 0x178]
call sym.__std::sys_common::net::LookupHost_as_core::iter::traits::iterator::Iterator_::next::h9562f7b702196898
movzx r14d, word [rbp - 0x58]
cmp r14w, 2
je 0x5fa574
lea rax, [rbp - 0x50]
movdqu xmm0, xmmword [rax]
movdqa xmmword [rbp + 0x150], xmm0
mov eax, dword [rax + 0x10]
mov dword [rbp + 0x160], eax
mov rax, qword [rbp + 0x170]
movzx r15d, word [rax]
test r14w, r14w
movzx esi, word [rbp - 0x52]
cmove si, r15w
cmove r15w, word [rbp - 0x3c]
mov rdx, rdi
mov edi, dword [rbp - 0x56]
movzx eax, word [rbp - 0x3a]
mov word [rbp + 0x1e4], ax
cmp rdx, qword [rbp + 0x1a8]
jne 0x5fa4a1
lea rcx, [rbp + 0x1a8]
mov r12, rdx
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h547fdb8004fa6dd4
jmp 0x5fa497
mov rcx, qword [rbp + 0x178]
call sub.ws2_32.dll_freeaddrinfo
mov rcx, qword [rbp + 0x1a8]
mov rax, qword [rbp + 0x1b0]
mov rsi, qword [rbp + 0x148]
shl rdi, 5
add rdi, rax
mov qword [rsi], rax
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rcx
mov qword [rsi + 0x18], rdi
jmp 0x5fa0f9
mov rax, qword [rbp + 0x1a8]
movzx ecx, word [rbp + 0x1e6]
mov qword [rbp + 0x1d0], rax
mov word [rbp + 0x1d8], cx
xor edx, edx
mov qword [rbp + 0x1c8], rax
jmp 0x5fa31a
call sym.std::sync::once_lock::OnceLock_T_::initialize::he6a547af765b607b
lea r15, [rbp + 0x1e6]
mov qword [rbp + 0x150], r15
cmp rdi, 0x17f
jbe 0x5fa1b6
lea rcx, [rbp + 0x1c0]
lea r9, [rbp + 0x150]
mov rdx, rbx
mov r8, rdi
call sym.std::sys::pal::common::small_c_string::run_with_cstr_allocating::h7b44a4d7be12da09
mov rdx, qword [rbp + 0x1c0]
jmp 0x5fa31a
mov ecx, 4
mov edx, 0x20
call sym.alloc::alloc::handle_alloc_error::h033f15fcf3b32b44
mov ecx, 4
mov edx, pe_nt_image_headers64
call sym.alloc::raw_vec::handle_error::h5313441c9bd13595
ud2