Function at 0x14012ee80
Capabilities:
Check for time delay via gettickcount
Check for time delay via queryperformancecounter
Set socket configuration

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0xa0
mov rax, qword [0x1402dc040]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov r8, qword [rcx + 0x20]
lea r14, [rcx + 0xf0]
xor r15d, r15d
mov rsi, rcx
movzx ecx, byte [rcx + 0x12fb]
mov ebp, r15d
mov dword [rsp + 0x60], r15d
test cl, cl
je 0x14012ef04
test cl, 1
je 0x14012eed7
test byte [rsi + 0x13c], 0x10
je 0x14012eef9
test cl, 2
je 0x14012eee5
test byte [rsi + 0x13c], 0x20
je 0x14012eef9
test dword [rsi + 0x13c], 0x30
je 0x14012eef9
mov edi, r15d
jmp 0x14012f4d5
mov ebx, ecx
mov byte [rsi + 0x12fb], bpl
jmp 0x14012ef4c
mov ecx, dword [r14 + 0x4c]
mov eax, ecx
and al, 0x15
cmp al, 1
jne 0x14012ef19
mov rax, qword [r8 + 0x380]
jmp 0x14012ef20
mov rax, 0xffffffffffffffff
and cl, 0x2a
cmp cl, 2
jne 0x14012ef31
mov r8, qword [r8 + 0x388]
jmp 0x14012ef38
mov r8, 0xffffffffffffffff
xor r9d, r9d
mov rdx, 0xffffffffffffffff
mov rcx, rax
call fcn.140132940
mov ebx, eax
cmp ebx, 4
jne 0x14012ef6a
lea rdx, str.select_poll_returned_error
mov rcx, rsi
call fcn.140101f40
mov edi, gethostname
jmp 0x14012f4d5
mov eax, ebx
and eax, dword [r14 + 0x4c]
test al, 1
je 0x14012ef9f
lea r8, [rsp + 0x60]
mov rdx, r14
mov rcx, rsi
call fcn.14012eb30
mov edi, eax
test eax, eax
jne 0x14012f4d5
cmp byte [rsi + 0x1e2], bpl
jne 0x14012f4d5
mov ebp, dword [rsp + 0x60]
and ebx, dword [r14 + 0x4c]
movabs rdi, 0xffdf3b645a1cac09
mov qword [rsp + 0xd8], r12
movabs r12, 0x20c49ba5e353f7
test bl, 2
je 0x14012f144
test byte [rsi + 0x13c], 0x20
jne 0x14012f144
cmp byte [rsi + 0x1e8], r15b
jne 0x14012f144
mov rcx, rsi
or ebp, 2
call fcn.14011d790
mov edi, eax
test eax, eax
jne 0x14012f4cd
cmp byte [0x1402df141], r15b
je 0x14012f03f
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r8, qword [0x1402df138]
mov rax, qword [rsp + 0x68]
cqo
idiv r8
mov r9, rax
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x68]
cqo
idiv r8
imul rax, rdx, 0xf4240
cqo
idiv r8
mov rcx, rax
jmp 0x14012f06d
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r8d, eax
mov eax, 0x10624dd3
mul r8d
shr edx, 6
imul ecx, edx, 0x3e8
mov r9d, edx
mov qword [rsp + 0x50], r9
sub r8d, ecx
imul eax, r8d, 0x3e8
mov ecx, eax
mov rbx, qword [rsi + 0x20]
movabs rdi, 0xffdf3b645a1cac09
mov dword [rsp + 0x58], eax
movups xmm0, xmmword [rbx + 0x418]
movq rax, xmm0
sub r9, rax
cmp r9, r12
jge 0x14012f0ce
cmp r9, rdi
jle 0x14012f144
psrldq xmm0, 8
movd eax, xmm0
sub ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul rax, r9, 0x3e8
movsxd rcx, edx
add rcx, rax
cmp rcx, 0x3e8
jle 0x14012f144
mov rbx, qword [rbx + 0x388]
lea rax, [rsp + 0x68]
mov qword [rsp + 0x40], r15
xor r9d, r9d
mov qword [rsp + 0x38], r15
xor r8d, r8d
mov qword [rsp + 0x30], rax
mov edx, 0x4004747b
lea rax, [rsp + 0x60]
mov dword [rsp + 0x28], 4
mov rcx, rbx
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
jne 0x14012f134
lea r9, [rsp + 0x60]
mov dword [rsp + 0x20], 4
mov edx, 0xffff
mov r8d, 0x1001
mov rcx, rbx
call qword [sym.imp.WS2_32.dll_setsockopt]
mov rax, qword [rsi + 0x20]
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rax + 0x418], xmm0
cmp byte [0x1402df141], r15b
mov qword [rsp + 0xe0], r13
movaps xmmword [rsp + 0x90], xmm6
je 0x14012f199
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r8, qword [0x1402df138]
mov rax, qword [rsp + 0x68]
cqo
idiv r8
mov r13, rax
mov rax, qword [rsp + 0x68]
cqo
idiv r8
imul rax, rdx, 0xf4240
cqo
idiv r8
mov r8, r13
mov ecx, eax
jmp 0x14012f1c5
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r8d, eax
mov eax, 0x10624dd3
mul r8d
shr edx, 6
imul ecx, edx, 0x3e8
mov r13d, edx
sub r8d, ecx
imul ecx, r8d, 0x3e8
mov r8d, edx
mov eax, ecx
mov dword [rsp + 0x58], eax
movabs rbx, 0x8000000000000000
mov qword [rsp + 0x50], r13
movabs r12, 0x7fffffffffffffff
movaps xmm6, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x70], xmm6
mov qword [rsp + 0x68], rax
test ebp, ebp
jne 0x14012f31b
cmp dword [r14 + 0x60], 1
jne 0x14012f287
movups xmm0, xmmword [r14 + 0x50]
movq rax, xmm0
sub r8, rax
movabs rax, 0x20c49ba5e353f7
cmp r8, rax
jl 0x14012f226
mov rcx, r12
jmp 0x14012f259
cmp r8, rdi
jg 0x14012f230
mov rcx, rbx
jmp 0x14012f259
psrldq xmm0, 8
movd eax, xmm0
sub ecx, eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul rax, r8, 0x3e8
movsxd rcx, edx
add rcx, rax
movsxd rax, dword [rsi + 0xa3c]
cmp rcx, rax
jl 0x14012f287
or dword [r14 + 0x4c], 2
xor edx, edx
mov rcx, rsi
mov dword [r14 + 0x60], r15d
call fcn.14010b8d0
lea rdx, str.Done_waiting_for_100_continue
mov rcx, rsi
call fcn.140102070
mov r15, qword [rsi + 0x20]
lea rcx, [fcn.140046f00]
xor ebp, ebp
add r15, 0x250
nop dword [rax + rax]
mov rbx, qword [r15]
xor edi, edi
test rbx, rbx
je 0x14012f2fc
nop word [rax + rax]
mov rax, qword [rbx]
mov r10, qword [rax + 0x50]
cmp rcx, r10
je 0x14012f2e4
xor r9d, r9d
mov qword [rsp + 0x20], 0
mov r8d, 5
mov rdx, rsi
mov rcx, rbx
call r10
mov edi, eax
test eax, eax
jne 0x14012f2ed
lea rcx, [fcn.140046f00]
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x14012f2b0
test edi, edi
jne 0x14012f4bd
lea rcx, [fcn.140046f00]
inc rbp
add r15, 8
cmp rbp, 2
jb 0x14012f2a0
test edi, edi
jne 0x14012f4bd
movabs rbx, 0x8000000000000000
mov rcx, rsi
call fcn.140120770
test eax, eax
jne 0x14012f4a7
lea rdx, [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm6
mov rcx, rsi
call fcn.14013ad10
mov edi, eax
test eax, eax
jne 0x14012f4bd
cmp dword [r14 + 0x4c], eax
je 0x14012f45d
xor r8d, r8d
lea rdx, [rsp + 0x70]
mov rcx, rsi
call fcn.14010d0c0
test rax, rax
jns 0x14012f4ae
movups xmm0, xmmword [rsi + 0xb88]
mov r8, qword [r14]
movq rax, xmm0
sub r13, rax
movabs rax, 0x20c49ba5e353f7
cmp r8, 0xffffffffffffffff
je 0x14012f3f9
cmp r13, rax
jge 0x14012f3d4
movabs rax, 0xffdf3b645a1cac09
cmp r13, rax
jg 0x14012f3a6
mov r12, rbx
jmp 0x14012f3d4
mov rdx, qword [rsp + 0x68]
mov eax, 0x10624dd3
psrldq xmm0, 8
movd ecx, xmm0
sub edx, ecx
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul rax, r13, 0x3e8
movsxd r12, edx
add r12, rax
mov r9, qword [r14 + 0x10]
lea rdx, str.Operation_timed_out_after__lld_milliseconds_with__lld_out_of__lld_bytes_received
mov qword [rsp + 0x20], r8
mov rcx, rsi
mov r8, r12
call fcn.140101f40
mov edi, 0x1c
jmp 0x14012f4bd
cmp r13, rax
jge 0x14012f440
movabs rax, 0xffdf3b645a1cac09
cmp r13, rax
jg 0x14012f412
mov r12, rbx
jmp 0x14012f440
mov rdx, qword [rsp + 0x68]
psrldq xmm0, 8
movd eax, xmm0
sub edx, eax
mov eax, 0x10624dd3
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
imul rax, r13, 0x3e8
movsxd r12, edx
add r12, rax
mov r9, qword [r14 + 0x10]
lea rdx, str.Operation_timed_out_after__lld_milliseconds_with__lld_bytes_received
mov r8, r12
mov rcx, rsi
call fcn.140101f40
mov edi, 0x1c
jmp 0x14012f4bd
cmp byte [rsi + 0x1f0], 0
jne 0x14012f49b
mov r8, qword [r14]
cmp r8, 0xffffffffffffffff
je 0x14012f49b
mov rax, qword [r14 + 0x10]
cmp rax, r8
je 0x14012f49b
cmp qword [r14 + 0xd8], 0
jne 0x14012f49b
sub r8, rax
lea rdx, str.transfer_closed_with__lld_bytes_remaining_to_read
mov rcx, rsi
call fcn.140101f40
mov edi, reloc.WS2_32.dll_select
jmp 0x14012f4bd
mov rcx, rsi
call fcn.140120770
test eax, eax
je 0x14012f4ae
mov edi, Ordinal_46
jmp 0x14012f4bd
mov eax, dword [r14 + 0x4c]
test al, 0x3f
jne 0x14012f4bd
mov byte [rsi + 0x1e2], 1
mov r13, qword [rsp + 0xe0]
movaps xmm6, xmmword [rsp + 0x90]
mov r12, qword [rsp + 0xd8]
mov eax, edi
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14016dfe0
mov rbx, qword [rsp + 0xe8]
add rsp, 0xa0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret