Function at 0x14000f2a1
Capabilities:
Connect socket
Resolve dns
Set socket configuration

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x578
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x4e0], xmm7
movdqa xmmword [rbp + 0x4d0], xmm6
mov qword [rbp + 0x4c8], 0xfffffffffffffffe
mov rdi, rdx
mov rsi, rcx
mov rax, qword [rdx + 0xd8]
mov rcx, qword [rdx + 0xe8]
mov edx, dword [rdx + 0xd0]
test edx, edx
je 0x14000f301
cmp edx, 1
jne 0x14000f306
mov edx, 0x1bb
jmp 0x14000f30c
push 0x50
pop rdx
jmp 0x14000f30c
mov edx, dword [rdi + 0xd4]
lea r8, [rbp - 0x50]
mov qword [r8], rax
mov qword [r8 + 8], rcx
lea rax, [rbp + 0x3ec]
mov dword [rax], edx
lea r15, [rbp - 0x40]
mov qword [r15], r8
lea rcx, [0x140008320]
mov qword [r15 + 8], rcx
mov qword [r15 + 0x10], rax
lea rax, str.called__Option::unwrap____on_a__None__value
lea rdx, [rbp + 0x1c8]
mov qword [rdx], rax
push 2
pop rax
mov qword [rdx + 8], rax
and qword [rdx + 0x20], 0
lea rcx, [0x140009b50]
mov qword [r15 + 0x18], rcx
mov qword [rdx + 0x10], r15
mov qword [rdx + 0x18], rax
lea r14, [rbp + 0x3d0]
mov rcx, r14
call fcn.140006840
mov rbx, qword [r14]
mov r13, qword [r14 + 0x10]
mov qword [r15], rbx
mov qword [r15 + 8], r13
lea rcx, [rbp - 0x40]
call fcn.140008ec0
mov r14, rax
test r14b, 1
je 0x14000f40e
mov r15, qword [rbp - 0x38]
test r15, r15
je 0x14000f3df
mov rax, qword [rbp - 0x40]
lea rcx, [r15 - 1]
mov dl, byte [rax]
inc rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rcx
cmp dl, 0x3a
jne 0x14000f3df
lea rdx, [rbp + 0x1c8]
mov dword [rdx + 0x10], 0xa
and qword [rdx], 0
mov byte [rdx + 0x14], 1
lea rcx, [rbp - 0x40]
call fcn.1400097a0
cmp ax, 1
jne 0x14000f3e1
jmp 0x14000f3ea
xor eax, eax
mov qword [rbp - 0x38], r15
test ax, ax
je 0x14000f40e
movabs rax, 0xffffffff00
and r14, rax
shr r14, 8
push 1
pop rax
movzx ecx, dx
shl rcx, 0x30
shl r14, 0x10
or r14, rcx
jmp 0x14000f413
xor r14d, r14d
xor eax, eax
or rax, r14
cmp ax, 1
je 0x14000f51e
movzx ecx, ax
mov rax, r13
test ecx, ecx
jne 0x14000f522
test r13, r13
je 0x14000f9f8
lea rax, [r13 - 1]
lea rcx, [rbx + 1]
mov dl, byte [rbx]
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rax
cmp dl, 0x5b
jne 0x14000f9f8
lea r14, [rbp + 0x1c8]
lea rdx, [rbp - 0x40]
mov rcx, r14
call fcn.140009420
cmp byte [r14], 0
je 0x14000f9f8
mov r14d, dword [rbp + 0x1c9]
mov rax, qword [rbp + 0x1cd]
mov qword [rbp + 0x470], rax
mov eax, dword [rbp + 0x1d5]
mov dword [rbp + 0x478], eax
mov rcx, qword [rbp - 0x40]
mov r8, qword [rbp - 0x38]
xor r9d, r9d
test r8, r8
je 0x14000f869
cmp byte [rcx], 0x25
jne 0x14000f932
push 1
pop r9
lea r12, [r8 - 1]
mov qword [rbp + 0x4b8], rcx
lea r11, [rcx + 1]
xor r15d, r15d
mov qword [rbp + 0x4b0], r12
mov qword [rbp + 0x4a8], r11
xor ecx, ecx
mov eax, 0
test r12, r12
je 0x14000f4f6
movzx r10d, byte [r11]
add r10d, 0xffffffd0
xor eax, eax
cmp r10d, 0xa
setb al
jae 0x14000f4f6
dec r12
inc r11
cmp eax, 1
jne 0x14000f8fd
mov eax, r15d
push reloc.WS2_32.dll_ioctlsocket
pop rdx
mul edx
jo 0x14000f912
mov r15d, eax
add r15d, r10d
jb 0x14000f912
inc rcx
jmp 0x14000f4d3
mov rax, qword [rbp - 0x38]
test rax, rax
jne 0x14000fa00
mov ebx, r14d
shr ebx, 0x10
shr r14, 0x18
xor r13d, r13d
mov eax, dword [rbp + 0x1d0]
mov dword [rbp + 0x418], eax
mov rax, qword [rbp + 0x1c8]
mov qword [rbp + 0x410], rax
mov al, byte [0x1400f6349]
push 0x20
pop rcx
push 4
pop rdx
call fcn.140006250
test rax, rax
je 0x1400104f1
mov word [rax], r13w
mov rdx, r14
shl rdx, 8
movzx ecx, bl
or rcx, rdx
shr r14, 0x18
mov word [rax + 6], r14w
mov dword [rax + 2], ecx
mov rcx, qword [rbp + 0x410]
mov qword [rax + 8], rcx
mov ecx, dword [rbp + 0x418]
mov dword [rax + 0x10], ecx
and dword [rax + 0x14], 0
mov dword [rax + 0x18], r15d
mov word [rax + 0x1c], r12w
mov r13, rax
add r13, 0x20
push 1
pop r12
mov rbx, rax
jmp 0x14000f932
test rcx, rcx
je 0x14000f912
mov qword [rbp + 0x4b0], r12
mov qword [rbp + 0x4a8], r11
jmp 0x14000f915
xor r9d, r9d
mov rcx, qword [rbp + 0x4b8]
cmp r9d, 1
jne 0x14000f932
mov rcx, qword [rbp + 0x4a8]
mov r8, qword [rbp + 0x4b0]
jmp 0x14000f939
test r9d, r9d
cmove r15d, r9d
test r8, r8
je 0x14000f9f8
cmp byte [rcx], 0x5d
jne 0x14000f9f8
mov rdx, r8
dec rdx
je 0x14000f9a2
add r8, 0xfffffffffffffffe
mov al, byte [rcx + 1]
add rcx, 2
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], r8
cmp al, 0x3a
jne 0x14000f9a2
mov qword [rbp + 0x4b8], rdx
lea rdx, [rbp + 0x1c8]
mov dword [rdx + 0x10], 0xa
and qword [rdx], 0
mov byte [rdx + 0x14], 1
lea rcx, [rbp - 0x40]
call fcn.1400097a0
mov r12d, edx
mov rdx, qword [rbp + 0x4b8]
cmp ax, 1
jne 0x14000f9a4
jmp 0x14000f9ad
xor eax, eax
mov qword [rbp - 0x38], rdx
test ax, ax
je 0x14000f9f8
mov eax, dword [rbp + 0x478]
mov rcx, qword [rbp + 0x470]
mov qword [rbp + 0x420], rcx
mov dword [rbp + 0x428], eax
cmp qword [rbp - 0x38], 0
jne 0x14000fa00
shl r14, 8
mov eax, dword [rbp + 0x428]
mov dword [rbp + 0x1d0], eax
mov rax, qword [rbp + 0x420]
mov qword [rbp + 0x1c8], rax
mov r13w, 1
xor ebx, ebx
jmp 0x14000f538
mov qword [rbp - 0x40], rbx
mov qword [rbp - 0x38], r13
mov qword [rbp + 0x1c8], rbx
mov qword [rbp + 0x1d0], r13
and qword [rbp + 0x1d8], 0
mov qword [rbp + 0x1e8], 1
movabs rax, 0x3a0000003a
mov qword [rbp + 0x1f0], rax
mov r15b, 0x3a
mov r14, r13
mov cl, 0x3a
mov rdx, rbx
mov r8, r14
call fcn.14000bab0
cmp rax, 1
jne 0x14000fa5e
mov r14, rdx
cmp rdx, r13
jae 0x14000fa59
cmp byte [rbx + r14], r15b
je 0x14000faa1
cmp r14, r13
jbe 0x14000fa38
lea rcx, str.invalid_socket_address
mov byte [rsi], 0x16
mov qword [rsi + 8], rcx
lea r12, [r14 + 1]
lea rcx, str.invalid_port_value
sub r13, r12
je 0x14000fa65
lea r8, [rbx + r14]
inc r8
movzx eax, byte [r8]
cmp eax, 0x2d
je 0x14000fad0
cmp eax, 0x2b
jne 0x14000fad6
dec r13
je 0x14000fa65
inc r8
jmp 0x14000fad6
cmp r13, 1
je 0x14000fa65
cmp r13, 5
jae 0x14000fb64
xor eax, eax
xor r15d, r15d
movzx edx, byte [r8 + rax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x14000fa65
imul r15d, r15d, 0xa
add r15d, edx
inc rax
cmp r13, rax
jne 0x14000fae5
mov rax, qword [0x1400f62a8]
cmp rax, 3
jne 0x140010104
cmp r14, 0x17f
ja 0x14001010e
lea r13, [rbp + 0x1c8]
mov rcx, r13
mov rdx, rbx
mov r8, r14
call fcn.140093d80
mov byte [rbp + r14 + 0x1c8], 0
cmp r14, 0xe
ja 0x14000fbaa
xor ecx, ecx
cmp byte [rbp + rcx + 0x1c8], 0
je 0x14000fc7d
inc rcx
cmp r12, rcx
jne 0x14000fb49
jmp 0x14000fcd5
xor r9d, r9d
mov r10w, 0xa
xor r15d, r15d
cmp r13, r9
je 0x14000fb05
movzx r11d, byte [r8 + r9]
mov eax, r15d
mul r10w
seto dl
add r11d, 0xffffffd0
cmp r11d, 9
ja 0x14000fa65
test dl, dl
jne 0x14000fa65
mov r15d, eax
inc r9
add r15w, r11w
jae 0x14000fb6f
jmp 0x14000fa65
lea rax, [rbp + 0x1cf]
and rax, 0xfffffffffffffff8
sub rax, r13
je 0x14000fbdf
je 0x14000fbdf
xor ecx, ecx
cmp byte [rbp + rcx + 0x1c8], 0
je 0x14000fc7d
inc rcx
cmp rax, rcx
jne 0x14000fbbe
lea rcx, [r14 - 0xf]
cmp rax, rcx
jbe 0x14000fbe5
jmp 0x14000fc28
lea rcx, [r14 - 0xf]
xor eax, eax
movdqa xmm0, xmmword [0x140098140]
movabs rdx, 0x8080808080808080
movdqu xmm1, xmmword [rbp + rax + 0x1c8]
movdqa xmm2, xmm1
paddq xmm2, xmm0
pandn xmm1, xmm2
pshufd xmm2, xmm1, 0xee
por xmm2, xmm1
movq r8, xmm2
test r8, rdx
jne 0x14000fc28
add rax, 0x10
cmp rax, rcx
jbe 0x14000fbf7
sub r12, rax
je 0x14000fcd5
lea rdx, [rax + rbp]
add rdx, 0x1c8
xor ecx, ecx
cmp byte [rdx + rcx], 0
je 0x14000fc7a
inc rcx
cmp r12, rcx
jne 0x14000fc3e
jmp 0x14000fcd5
add rcx, rax
cmp rcx, r14
jne 0x14000fcd5
pxor xmm0, xmm0
lea r8, [rbp - 0x40]
movdqa xmmword [r8], xmm0
movdqa xmmword [r8 + 0x20], xmm0
movdqa xmmword [r8 + 0x10], xmm0
mov dword [r8 + 8], 1
lea r9, [rbp + 0x430]
and qword [r9], 0
lea rcx, [rbp + 0x1c8]
xor edx, edx
call qword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
je 0x14000fd60
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
shl rax, 0x20
or rax, 2
jmp 0x14000fcdc
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rbp + 0x478], rax
push 1
pop rax
test rax, rax
je 0x14000fcf7
mov rcx, qword [rbp + 0x478]
jmp 0x14000fa65
mov rcx, qword [rbp + 0x478]
mov rax, qword [rbp + 0x480]
push 4
pop rbx
test rax, rax
je 0x14000fd48
mov qword [rbp + 0x4b0], rcx
movzx r8d, word [rbp + 0x488]
xor r13d, r13d
mov rcx, qword [rax + 0x20]
mov r14, qword [rax + 0x28]
movzx edx, word [rcx]
cmp edx, 0x17
je 0x14000fdab
cmp edx, 2
je 0x14000fd84
mov rax, r14
test r14, r14
jne 0x14000fd1f
xor r12d, r12d
xor r13d, r13d
xor r12d, r12d
mov rax, qword [rbp + 0x430]
mov qword [rbp + 0x478], rax
mov qword [rbp + 0x480], rax
mov word [rbp + 0x488], r15w
xor eax, eax
jmp 0x14000fce6
cmp qword [rax + 0x10], 0xf
jbe 0x14001056f
mov r12d, dword [rcx + 4]
mov eax, r12d
shr eax, 0x10
movd xmm6, eax
mov ebx, r8d
pinsrw xmm6, r8d, 1
xor r13d, r13d
jmp 0x14000fdda
cmp qword [rax + 0x10], 0x1b
jbe 0x14001058e
mov ebx, r8d
movdqu xmm6, xmmword [rcx + 8]
mov eax, dword [rcx + 4]
mov dword [rbp + 0x4a8], eax
mov eax, dword [rcx + 0x18]
mov dword [rbp + 0x4b8], eax
pshufd xmm7, xmm6, 0xf9
mov r13w, 1
mov al, byte [0x1400f6349]
push 4
pop r15
mov ecx, 0x80
mov rdx, r15
call fcn.140006250
test rax, rax
je 0x14001050d
mov word [rax], r13w
mov word [rax + 2], r12w
movd dword [rax + 4], xmm6
movq qword [rax + 8], xmm7
pshufd xmm0, xmm7, 0xee
movd dword [rax + 0x10], xmm0
mov ecx, dword [rbp + 0x4a8]
mov dword [rax + 0x14], ecx
mov ecx, dword [rbp + 0x4b8]
mov dword [rax + 0x18], ecx
mov r9d, ebx
mov word [rax + 0x1c], r9w
push 1
pop r13
lea r11, [rbp - 0x40]
mov r12, r15
mov rcx, rax
mov rbx, rax
mov r10, r15
call fcn.140096570
jmp 0x14000fb16
or dl, bh
invalid
invalid
lea r12, [rbp + 0x470]
mov rcx, r12
mov rdx, rbx
mov r8, r14
mov r9d, r15d
call fcn.1400965d0
mov rax, qword [r12]
jmp 0x14000fce6
invalid
invalid
push 4
pop rcx
push 0x20
pop rdx
call fcn.140094890
ud2
mov byte [rbp + 0x4c7], 1
push 4
pop rcx
mov edx, 0x80
call fcn.140094890
jmp 0x1400105ab
mov byte [rbp + 0x4c7], 1
lea rcx, str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in___library_std_src_sys_common_net.rs
lea r8, [0x1400ba358]
push 0x42
pop rdx
call fcn.140094c20
jmp 0x1400105ab
mov byte [rbp + 0x4c7], 1
lea rcx, str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in6___
lea r8, [0x1400ba3b8]
push 0x43
pop rdx
call fcn.140094c20