Function at 0x14006e5dc
Capabilities:
Connect socket
Enumerate pe sections
Set socket configuration

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x4d8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x450], 0xfffffffffffffffe
mov rbx, rdx
mov rsi, rcx
lea rax, [rbp + 0x1b0]
mov qword [rax], r8
mov qword [rax + 8], r9
lea rcx, [rbp - 0x58]
mov qword [rcx], rax
lea rax, [0x140043640]
mov qword [rcx + 8], rax
lea rax, [rbp + 0x4c0]
mov qword [rcx + 0x10], rax
lea rax, str.called__Option::unwrap____on_a__None__valuecalled__Result::unwrap____on_an__Err__value
lea rdx, [rbp + 0x1c0]
mov qword [rdx + 0x10], rax
push 2
pop rax
mov qword [rdx + 0x18], rax
and qword [rdx], 0
lea r8, [fcn.140048e40]
mov qword [rcx + 0x18], r8
mov qword [rdx + 0x20], rcx
mov qword [rdx + 0x28], rax
lea r14, [rbp + 0x3d8]
mov rcx, r14
call fcn.14006d330
mov rdi, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
lea rcx, [rbp + 0x1c0]
mov rdx, rdi
call fcn.1400cbf00
cmp qword [rbp + 0x1d8], 0
je 0x14006e774
mov cl, byte [rbp + 0x1c0]
mov eax, dword [rbp + 0x1c1]
mov dword [rbp + 0x409], eax
mov eax, dword [rbp + 0x1c4]
mov dword [rbp + 0x40c], eax
mov rax, qword [rbp + 0x1c8]
movups xmm0, xmmword [rbp + 0x1d0]
movups xmmword [rbp + 0x418], xmm0
mov byte [rbp + 0x408], cl
mov qword [rbp + 0x410], rax
cmp rax, qword [rbp + 0x418]
je 0x14006e784
lea rcx, [rax + 0x20]
mov qword [rbp + 0x410], rcx
movzx r14d, word [rax]
mov r15d, dword [rax + 2]
movzx r13d, word [rax + 6]
mov r12, qword [rax + 8]
mov ecx, dword [rax + 0x10]
mov dword [rbp + 0x434], ecx
mov ecx, dword [rax + 0x14]
mov dword [rbp + 0x430], ecx
mov ecx, dword [rax + 0x18]
mov dword [rbp + 0x440], ecx
movzx eax, word [rax + 0x1c]
mov qword [rbp + 0x438], rax
mov byte [rbp + 0x1c0], 0x1f
cmp r14w, 2
je 0x14006e78b
lea rcx, [rbp + 0x1c0]
call fcn.1400626f6
mov rax, qword [rbx]
mov rdx, qword [rax]
mov r8d, dword [rax + 8]
lea rcx, [rbp + 0x1c0]
call fcn.140064a4d
mov ebx, dword [rbp + 0x1c8]
cmp ebx, 0x3b9aca01
jne 0x14006e7c3
mov rax, qword [rbp + 0x1c0]
mov byte [rsi], 0x19
mov qword [rsi + 8], rax
jmp 0x14006e793
mov rax, qword [rbp + 0x1c0]
mov byte [rsi], 0x19
mov qword [rsi + 8], rax
jmp 0x14006e79f
mov byte [rbp + 0x1c0], 0x1f
mov eax, dword [rbp + 0x1c0]
mov dword [rsi], eax
lea rcx, [rbp + 0x408]
call fcn.140071950
mov rcx, qword [rbp + 0x3d8]
mov rdx, rdi
call fcn.140071931
nop
add rsp, 0x4d8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
shl r13, 0x20
or r13, r15
cmp ebx, 0x3b9aca00
jne 0x14006e952
cmp r14w, 3
je 0x14006ea19
lea rdi, [rbp - 0x58]
and qword [rdi], 0
mov rax, r13
shr rax, 0x10
mov qword [rbp + 0x3f8], rax
mov rax, qword [rbp + 0x438]
rol ax, 8
mov qword [rbp + 0x438], rax
mov rax, r13
shr rax, 0x20
rol ax, 8
mov qword [rbp + 0x400], rax
xor eax, eax
mov qword [rbp + 0x448], rax
lea rbx, [rbp + 0x1c0]
push 1
pop r15
cmp r14w, 2
je 0x14006ea04
mov rax, qword [0x1401d0e10]
cmp rax, 3
je 0x14006e84c
call fcn.14012eee0
mov rcx, rbx
mov edx, r14d
mov r8d, r15d
call fcn.1400cc9a0
cmp qword [rbp + 0x1c0], 0
mov rax, qword [rbp + 0x1c8]
mov qword [rbp + 0x448], rax
jne 0x14006e935
test r14w, r14w
je 0x14006e8b8
mov rax, qword [rbp + 0x3f8]
mov dword [rbp + 0x1c0], eax
mov qword [rbp + 0x1c4], r12
mov eax, dword [rbp + 0x434]
mov dword [rbp + 0x1cc], eax
movaps xmm0, xmmword [rbp + 0x1c0]
mov ax, 0x17
mov rcx, qword [rbp + 0x438]
mov edx, dword [rbp + 0x430]
push 0x1c
jmp 0x14006e8cb
xorps xmm0, xmm0
mov ax, 2
mov rcx, qword [rbp + 0x400]
mov edx, r13d
push reloc.WS2_32.dll_recv
pop r8
mov word [rbp + 0x1c0], ax
mov word [rbp + 0x1c2], cx
mov dword [rbp + 0x1c4], edx
movups xmmword [rbp + 0x1c8], xmm0
mov eax, dword [rbp + 0x440]
mov dword [rbp + 0x1d8], eax
mov rdi, qword [rbp + 0x448]
mov rcx, rdi
mov rdx, rbx
call qword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x14006ea36
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r14d, eax
shl r14, 0x20
or r14, 2
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbp + 0x448], r14
lea rdi, [rbp - 0x58]
mov rcx, rdi
call fcn.14000a40d
mov rax, qword [rbp + 0x448]
mov qword [rbp - 0x58], rax
mov r14w, 2
jmp 0x14006e82f
mov rax, qword [rbp + 0x1c0]
mov qword [rbp + 0x448], rax
mov rax, qword [0x1401d0e10]
cmp rax, 3
je 0x14006e972
call fcn.14012eee0
lea r15, [rbp + 0x1c0]
push 1
pop rdi
mov rcx, r15
mov edx, r14d
mov r8d, edi
call fcn.1400cc9a0
cmp qword [r15], 0
mov r15, qword [r15 + 8]
jne 0x14006ec88
lea r8, [rbp + 0x1c0]
mov dword [r8], 1
mov rcx, r15
mov edx, 0x8004667e
call qword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
je 0x14006ea21
test r14w, r14w
je 0x14006ea4b
push 0x1c
pop r8
shr r13, 0x10
mov dword [rbp + 0x1c0], r13d
mov qword [rbp + 0x1c4], r12
mov eax, dword [rbp + 0x434]
mov dword [rbp + 0x1cc], eax
mov rcx, qword [rbp + 0x438]
rol cx, 8
movaps xmm0, xmmword [rbp + 0x1c0]
mov ax, 0x17
mov r9d, dword [rbp + 0x430]
jmp 0x14006ea64
mov rax, qword [rbp + 0x448]
test rax, rax
lea r12, str.could_not_resolve_to_any_addresses
cmovne r12, rax
mov r15, r12
jmp 0x14006ec88
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
shl rdi, 0x20
or rdi, 2
jmp 0x14006ec7c
lea rcx, [rbp - 0x58]
call fcn.14000a40d
mov r15, qword [rbp + 0x448]
jmp 0x14006ed2f
mov rcx, r13
shr rcx, 0x20
rol cx, 8
push reloc.WS2_32.dll_recv
pop r8
xorps xmm0, xmm0
mov ax, 2
mov r9d, r13d
lea rdx, [rbp + 0x1c0]
mov word [rdx], ax
mov word [rdx + 2], cx
mov dword [rdx + 4], r9d
movups xmmword [rdx + 8], xmm0
mov eax, dword [rbp + 0x440]
mov dword [rdx + 0x18], eax
mov rcx, r15
call qword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x14006ea96
xor r12d, r12d
jmp 0x14006eaa7
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r12d, eax
shl r12, 0x20
or r12, 2
lea r8, [rbp + 0x1c0]
and dword [r8], 0
mov rcx, r15
mov edx, 0x8004667e
call qword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
je 0x14006eaec
test r12, r12
je 0x14006ed2f
mov r14d, r12d
and r14d, 3
lea rax, [0x14006ef60]
movsxd rcx, dword [rax + r14*4]
add rcx, rax
jmp rcx
mov al, byte [r12 + 0x10]
jmp 0x14006eb1b
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
shl rdi, 0x20
or rdi, 2
mov r14d, r12d
and r14d, 3
jmp 0x14006ec14
mov al, byte [r12 + 0xf]
jmp 0x14006eb1b
cmp al, 0xd
jne 0x14006eb45
cmp qword [rbp + 0x448], 0
jne 0x14006eb4d
test ebx, ebx
jne 0x14006eb4d
lea rdi, str.cannot_set_a_0_duration_timeout
jmp 0x14006ec14
mov rdi, r12
jmp 0x14006ec7c
mov qword [rbp + 0x440], r12
mov r13, r15
mov ecx, 0x3e8
mov eax, ebx
xor edx, edx
div ecx
lea r12, [rbp + 0x3d0]
mov rdx, qword [rbp + 0x448]
mov dword [r12], edx
cmp ebx, ecx
mov ecx, eax
cmovb ecx, edi
test edx, edx
cmovne ecx, eax
mov dword [r12 + 4], ecx
lea rbx, [rbp + 0x1d0]
mov r15d, edi
mov r8d, 0x1f8
mov rcx, rbx
xor edx, edx
call fcn.14011ec50
push 1
pop rdi
lea rcx, [rbp - 0x48]
mov qword [rcx - 0x10], rdi
mov qword [rcx - 8], r13
mov r8d, 0x1f8
xor edx, edx
call fcn.14011ec50
mov qword [rbx - 0x10], rdi
mov qword [rbp + 0x448], r13
mov qword [rbx - 8], r13
mov qword [rsp + 0x20], r12
lea r8, [rbp - 0x58]
lea r9, [rbp + 0x1c0]
mov ecx, r15d
xor edx, edx
call qword [sym.imp.WS2_32.dll_select]
test eax, eax
je 0x14006ecaf
cmp eax, 0xffffffff
jne 0x14006ecc1
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
mov r12, qword [rbp + 0x440]
shl rdi, 0x20
or rdi, 2
mov r15, qword [rbp + 0x448]
test r12, r12
je 0x14006ec7c
cmp r14d, 1
jne 0x14006ec7c
mov qword [rbp + 0x448], r15
lea rax, [r12 - 1]
mov qword [rbp + 0x438], rax
mov rcx, qword [r12 - 1]
mov rax, qword [r12 + 7]
mov qword [rbp + 0x440], r12
call qword [rax]
mov rax, qword [rbp + 0x440]
mov rax, qword [rax + 7]
cmp qword [rax + 8], 0
mov rbx, qword [rbp + 0x438]
je 0x14006ec6a
mov rdx, qword [rax + 0x10]
mov rcx, qword [rbx]
call fcn.140040300
push 8
pop rdx
mov rcx, rbx
call fcn.140040300
mov r15, qword [rbp + 0x448]
mov rcx, r15
call qword [sym.imp.WS2_32.dll_closesocket]
mov r15, rdi
mov qword [rsi + 8], r15
mov al, 0x19
mov byte [rsi], al
lea rcx, [rbp + 0x408]
call fcn.140071950
mov rcx, qword [rbp + 0x3d8]
mov rdx, qword [rbp + 0x3e0]
jmp 0x14006e7a9
lea rdi, str.connection_timed_out
mov r12, qword [rbp + 0x440]
xor ebx, ebx
jmp 0x14006ecd2
mov bl, 1
cmp dword [rbp - 0x58], 1
mov r12, qword [rbp + 0x440]
jne 0x14006ed3a
xor edi, edi
cmp r14d, 1
jne 0x14006ed20
lea rax, [r12 - 1]
mov qword [rbp + 0x438], rax
mov rcx, qword [r12 - 1]
mov rax, qword [r12 + 7]
call qword [rax]
mov rax, qword [rbp + 0x440]
mov rax, qword [rax + 7]
cmp qword [rax + 8], 0
mov r14, qword [rbp + 0x438]
je 0x14006ed15
mov rdx, qword [rax + 0x10]
mov rcx, qword [r14]
call fcn.140040300
push 8
pop rdx
mov rcx, r14
call fcn.140040300
test bl, bl
mov r15, qword [rbp + 0x448]
je 0x14006ec7c
mov qword [rsi + 8], r15
mov al, 0x2c
jmp 0x14006ec8e
lea r9, [rbp + 0x42c]
and dword [r9], 0
lea rax, [rbp + 0x3f4]
mov dword [rax], 4
mov qword [rsp + 0x20], rax
mov rcx, qword [rbp + 0x448]
mov edx, 0xffff
mov r8d, 0x1007
call qword [sym.imp.WS2_32.dll_getsockopt]
cmp eax, 0xffffffff
je 0x14006ed87
mov edi, dword [rbp + 0x42c]
test edi, edi
jne 0x14006ec05
jmp 0x14006ecd0
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
jmp 0x14006ec05