Function at 0x140121620
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 [0x1402d9040]
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 0x1401216a4
test cl, 1
je 0x140121677
test byte [rsi + 0x13c], 0x10
je 0x140121699
test cl, 2
je 0x140121685
test byte [rsi + 0x13c], 0x20
je 0x140121699
test dword [rsi + 0x13c], 0x30
je 0x140121699
mov edi, r15d
jmp 0x140121c73
mov ebx, ecx
mov byte [rsi + 0x12fb], bpl
jmp 0x1401216e9
mov ecx, dword [r14 + 0x4c]
mov eax, ecx
and al, 0x15
cmp al, 1
jne 0x1401216b9
mov rax, qword [r8 + 0x380]
jmp 0x1401216c0
mov rax, 0xffffffffffffffff
and cl, 0x2a
cmp cl, 2
jne 0x1401216d1
mov r8, qword [r8 + 0x388]
jmp 0x1401216d8
mov r8, 0xffffffffffffffff
xor r9d, r9d
mov rcx, rax
lea rdx, [r9 - 1]
call fcn.1401250c0
mov ebx, eax
cmp ebx, 4
jne 0x140121705
lea rdx, str.select_poll_returned_error
mov rcx, rsi
call fcn.140115830
lea edi, [rbx + 0x33]
jmp 0x140121c73
mov eax, ebx
and eax, dword [r14 + 0x4c]
test al, 1
je 0x14012173a
lea r8, [rsp + 0x60]
mov rdx, r14
mov rcx, rsi
call fcn.1401212c0
mov edi, eax
test eax, eax
jne 0x140121c73
cmp byte [rsi + 0x1e2], bpl
jne 0x140121c73
mov ebp, dword [rsp + 0x60]
mov eax, dword [r14 + 0x4c]
movabs rdi, 0xffdf3b645a1cac09
and eax, ebx
mov qword [rsp + 0xd8], r12
movabs r12, 0x20c49ba5e353f7
test al, 2
je 0x1401218e0
test byte [rsi + 0x13c], 0x20
jne 0x1401218e0
cmp byte [rsi + 0x1e8], r15b
jne 0x1401218e0
mov rcx, rsi
or ebp, 2
call fcn.140118330
mov edi, eax
test eax, eax
jne 0x140121c6b
cmp byte [0x1402dbf21], r15b
je 0x1401217db
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r8, qword [0x1402dbf18]
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 0x140121809
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 0x14012186a
cmp r9, rdi
jle 0x1401218e0
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 0x1401218e0
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 0x1401218d0
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 [0x1402dbf21], r15b
mov qword [rsp + 0xe0], r13
movaps xmmword [rsp + 0x90], xmm6
je 0x140121935
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r8, qword [0x1402dbf18]
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 0x140121961
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 0x140121ab9
cmp dword [r14 + 0x60], 1
jne 0x140121a23
movups xmm0, xmmword [r14 + 0x50]
movq rax, xmm0
sub r8, rax
movabs rax, 0x20c49ba5e353f7
cmp r8, rax
jl 0x1401219c2
mov rcx, r12
jmp 0x1401219f5
cmp r8, rdi
jg 0x1401219cc
mov rcx, rbx
jmp 0x1401219f5
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 0x140121a23
or dword [r14 + 0x4c], 2
xor edx, edx
mov rcx, rsi
mov dword [r14 + 0x60], r15d
call fcn.140105990
lea rdx, str.Done_waiting_for_100_continue
mov rcx, rsi
call fcn.140115960
mov r15, qword [rsi + 0x20]
lea rcx, [fcn.140047070]
xor ebp, ebp
add r15, 0x250
nop word [rax + rax]
mov rbx, qword [r15]
xor edi, edi
test rbx, rbx
je 0x140121a9a
nop word [rax + rax]
mov rax, qword [rbx]
mov r10, qword [rax + 0x50]
cmp rcx, r10
je 0x140121a82
xor r9d, r9d
mov qword [rsp + 0x20], 0
mov rdx, rsi
mov rcx, rbx
lea r8d, [r9 + 5]
call r10
mov edi, eax
test eax, eax
jne 0x140121a8b
lea rcx, [fcn.140047070]
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x140121a50
test edi, edi
jne 0x140121c5b
lea rcx, [fcn.140047070]
inc rbp
add r15, 8
cmp rbp, 2
jb 0x140121a40
test edi, edi
jne 0x140121c5b
movabs rbx, 0x8000000000000000
mov rcx, rsi
call fcn.140126530
test eax, eax
jne 0x140121c45
lea rdx, [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm6
mov rcx, rsi
call fcn.14012e430
mov edi, eax
test eax, eax
jne 0x140121c5b
cmp dword [r14 + 0x4c], eax
je 0x140121bfb
xor r8d, r8d
lea rdx, [rsp + 0x70]
mov rcx, rsi
call fcn.140107410
test rax, rax
jns 0x140121c4c
movups xmm0, xmmword [rsi + 0xb88]
mov r8, qword [r14]
movq rax, xmm0
sub r13, rax
movabs rax, 0x20c49ba5e353f7
cmp r8, 0xffffffffffffffff
je 0x140121b97
cmp r13, rax
jge 0x140121b72
movabs rax, 0xffdf3b645a1cac09
cmp r13, rax
jg 0x140121b44
mov r12, rbx
jmp 0x140121b72
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.140115830
mov edi, 0x1c
jmp 0x140121c5b
cmp r13, rax
jge 0x140121bde
movabs rax, 0xffdf3b645a1cac09
cmp r13, rax
jg 0x140121bb0
mov r12, rbx
jmp 0x140121bde
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.140115830
mov edi, 0x1c
jmp 0x140121c5b
cmp byte [rsi + 0x1f0], 0
jne 0x140121c39
mov r8, qword [r14]
cmp r8, 0xffffffffffffffff
je 0x140121c39
mov rax, qword [r14 + 0x10]
cmp rax, r8
je 0x140121c39
cmp qword [r14 + 0xd8], 0
jne 0x140121c39
sub r8, rax
lea rdx, str.transfer_closed_with__lld_bytes_remaining_to_read
mov rcx, rsi
call fcn.140115830
mov edi, reloc.WS2_32.dll_select
jmp 0x140121c5b
mov rcx, rsi
call fcn.140126530
test eax, eax
je 0x140121c4c
mov edi, Ordinal_46
jmp 0x140121c5b
mov eax, dword [r14 + 0x4c]
test al, 0x3f
jne 0x140121c5b
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.14016b380
mov rbx, qword [rsp + 0xe8]
add rsp, 0xa0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret