Function at 0x1000ff2b0
Capabilities:
Check for time delay via queryperformancecounter
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r14
push r15
sub rsp, 0x90
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov rsi, rcx
mov r14, qword [rcx + 0x218]
mov qword [rsp + 0x30], r14
call fcn.10006bba0
test eax, eax
je 0x1000ff2ff
call qword [0x10023f478]
test rax, rax
je 0x1000ff2ff
mov qword [rsi + 0x40], rax
mov rcx, rax
call fcn.1000f3670
mov qword [rax + 0x20], rsi
cmp qword [rsi + 0x3d8], 0
je 0x1000ff328
call fcn.100068bb0
test byte [rax + 0xbb], 0x10
je 0x1000ff328
mov edx, 6
mov rcx, qword [rsi + 0x3d8]
call fcn.1000680b0
call fcn.10011b7d0
test eax, eax
je 0x1000ff349
lea rcx, [rsp + 0xc8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r11, qword [rsp + 0xc8]
jmp 0x1000ff351
mov r11, qword [0x7ffe0008]
mov qword [rsi + 0x2e8], r11
mov qword [rsi + 0x2f0], r11
rdtsc
shl rdx, 0x20
or rax, rdx
mov rcx, qword [rsi + 0x218]
add rax, qword [rcx + 0xab0]
mov qword [rsi + 0x2f8], rax
mov dword [rsi + 0x2a0], 1
mov rax, qword [r14 + 0x1068]
test byte [rax + 0x590], 4
je 0x1000ff39e
or dword [rsi + 0x220], 0x20
test byte [rsi + 0x2d8], 2
jne 0x1000ff3bb
mov rax, qword [r14]
xor r8d, r8d
mov rdx, rsi
mov rcx, r14
call qword [rax + 0x10]
jmp 0x1000ff4da
call fcn.10011b7d0
test eax, eax
je 0x1000ff3dc
lea rcx, [rsp + 0xd0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rdi, qword [rsp + 0xd0]
jmp 0x1000ff3e4
mov rdi, qword [0x7ffe0008]
mov rax, qword [rsi + 0x2e8]
cmp rdi, rax
jb 0x1000ff43d
mov rbx, rdi
sub rbx, rax
je 0x1000ff43f
add qword [rsi + 0x3a0], rbx
mov rax, qword [rsi + 0x218]
test byte [rax + 0x1008], 8
jne 0x1000ff43f
call fcn.100068930
test eax, eax
je 0x1000ff427
mov rdx, rbx
mov rcx, qword [rsi + 0x1f0]
call fcn.100108820
mov rcx, qword [rsi + 0x3a8]
test rcx, rcx
je 0x1000ff43f
mov rax, rbx
lock xadd qword [rcx], rax
jmp 0x1000ff43f
xor ebx, ebx
movabs r15, 0x7fffffffffffffff
cmp qword [rsi + 0x2f8], r15
je 0x1000ff49c
mov rax, qword [rsi + 0x3b0]
mov rcx, rbx
cmp rax, rbx
cmova rcx, rax
mov qword [rsi + 0x3b0], rcx
cmp qword [rsi + 0x3d8], 0
je 0x1000ff49c
mov rax, qword [0x1002784f0]
cmp rbx, rax
jbe 0x1000ff49c
mov rcx, qword [rsi + 0x2f0]
cmp rdi, rcx
jb 0x1000ff49c
sub rdi, rcx
cmp rdi, rax
jbe 0x1000ff49c
mov rcx, rsi
call fcn.100066420
call fcn.10011b7d0
test eax, eax
je 0x1000ff4bd
lea rcx, [rsp + 0xd8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r11, qword [rsp + 0xd8]
jmp 0x1000ff4c5
mov r11, qword [0x7ffe0008]
mov qword [rsi + 0x2e8], r11
mov qword [rsi + 0x2f0], r11
mov qword [rsi + 0x2f8], r15
lock dec dword [r14 + 0x1088]
lock inc dword [r14 + 0xaa4]
xor edx, edx
lea rax, [fcn.100062040]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rcx, [rsp + 0x68]
call fcn.10005b410
nop
mov rdx, rsi
mov rcx, r14
call fcn.1000d8800
nop
lea rcx, [rsp + 0x68]
call fcn.10005b4f0
nop
jmp 0x1000ff52f
call fcn.100068a00
mov rdi, rax
mov rbx, qword gs:[0x30]
add rbx, rax
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x1000ff55a
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rbx, rbx
je 0x1000ff56b
mov rax, qword [rbx + 0xd8]
test rax, rax
jne 0x1000ff5a2
call fcn.100063d30
call fcn.100068a00
mov rdi, rax
mov rbx, qword gs:[0x30]
add rbx, rax
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x1000ff59b
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
mov rax, qword [rbx + 0xd8]
cmp dword [rax + 0x204], 0
je 0x1000ff5b0
call fcn.1000618f0
lock dec dword [r14 + 0xaa4]
mov rax, qword [r14]
mov rdx, rsi
mov rcx, r14
call qword [rax + reloc.WS2_32.dll_htonl]
call fcn.100068a00
mov rdi, rax
mov rbx, qword gs:[0x30]
add rbx, rax
mov rcx, rax
call fcn.10006c530
test eax, eax
jne 0x1000ff5ef
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
or dword [rbx + 0x120], 4
xor eax, eax
add rsp, 0x90
pop r15
pop r14
pop rdi
pop rsi
pop rbx
ret