Function at 0x1400beb30
Capabilities:
Check for time delay via queryperformancecounter
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rbx, rcx
mov rax, qword [0x14022d028]
xor rax, rsp
mov qword [rsp + 0xa0], rax
movabs rdi, 0x8000000000000001
mov dword [rsp + 0x3c], 0xaaaaaaaa
mov rsi, qword [rdx]
lea rcx, [rdi - 2]
mov eax, 0xffffffff
cmp rsi, rcx
je 0x1400bec0a
mov rax, qword [rdx + 0x10]
movabs rcx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x40], rcx
test rax, rax
je 0x1400bf430
xor ecx, ecx
cmp rsi, rax
setns cl
movabs rdx, 0x7fffffffffffffff
add rdx, rcx
sub rsi, rax
cmovo rsi, rdx
lea rax, [rsi + rdi]
cmp rax, 2
jb 0x1400bebf4
movabs rcx, 0x20c49ba5e353f7cf
mov rax, rsi
imul rcx
mov rax, rdx
shr rax, 0x3f
sar rdx, 7
add rdx, rax
imul rax, rdx, 0x3e8
xor ecx, ecx
cmp rsi, rax
setg cl
add rcx, rdx
mov rsi, rcx
xor eax, eax
test rsi, rsi
setns al
neg eax
mov rcx, rsi
shr rcx, 0x20
cmovne esi, eax
mov eax, esi
movabs r13, 0xfffffffc00000000
mov dword [rsp + 0x3c], eax
lea rcx, [rsp + 0x3c]
call fcn.1400b3f10
mov eax, dword [rsp + 0x3c]
lea rdx, [rsp + 0x50]
xorpd xmm0, xmm0
movapd xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x90], 0
mov rcx, qword [rbx + 0x18]
mov dword [rsp + 0x20], eax
lea r8, [rsp + 0x60]
lea r9, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_GetQueuedCompletionStatus]
test eax, eax
je 0x1400bf2b8
mov rsi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x40]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14022f688]
je 0x1400bf5c8
mov rax, rsi
and rax, r13
cmp rax, qword [0x14022f688]
jne 0x1400becaa
mov rcx, rsi
call fcn.1400c5cb0
mov qword [rsp + 0x40], rsi
mov rsi, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14022f688]
je 0x1400bf5d2
mov rax, rsi
and rax, r13
cmp rax, qword [0x14022f688]
jne 0x1400bece6
mov rcx, rsi
call fcn.1400c5cb0
mov qword [rsp + 0x48], rsi
cmp rsi, rbx
jne 0x1400becfb
cmp qword [rsp + 0x40], rbx
je 0x1400bf2d6
mov rax, qword [rbx + 0x10]
mov rsi, qword [rax]
mov rcx, qword [rsi]
mov rax, qword [rcx + 0x20]
lea rdx, [fcn.1400b3f10]
cmp rax, rdx
jne 0x1400bf613
movabs rbx, 0x4000000000000000
movabs r15, 0xffffffffffffff
mov rax, qword [rcx + 0x30]
lea rcx, [0x1400cc730]
movabs r12, 0xbfffffffffffffff
cmp rax, rcx
jne 0x1400bf5df
movapd xmm0, xmmword [0x1401fa0c0]
movapd xmmword [rsp + 0x60], xmm0
mov rax, qword [rsi - 0xc0]
mov byte [rsp + 0x60], 0
mov byte [rsp + 0x68], 0
mov qword [rsp + 0x70], rax
cmp byte [rsi + 0x138], 0
je 0x1400bedef
cmp byte [rsi + 0x120], 0
je 0x1400bedef
mov eax, dword [0x14023be10]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov r14, qword [rax + 0x160]
test r14, r14
je 0x1400bedef
mov rax, qword [r14 + 0x10]
test rax, rax
js 0x1400bf578
cmp dword [r14 + 0x24], 1
jne 0x1400bf64a
cmp qword [r14 + 0x18], 0
jne 0x1400bf769
lock and qword [r14 + 0x10], r12
mov rdi, qword [rsi + 0x128]
cmp qword [r14 + 0x18], 0
jne 0x1400bf7db
mov rax, qword [r14 + 0x10]
and rax, rbx
and rdi, r15
or rdi, rax
mov qword [r14 + 0x10], rdi
dec dword [r14 + 0x24]
mov qword [rsi + 0x128], 0
mov byte [rsi + 0x130], 0
mov byte [rsi + 0x120], 0
mov byte [rsi + 0x138], 1
mov rax, qword [rsi + 0xf0]
mov ecx, dword [rax]
lea edx, [rcx + 1]
cmp edx, 1
adc ecx, 1
mov dword [rax], ecx
lea rcx, [rsi - 0xb8]
lea rdx, [rsp + 0x60]
call fcn.1400c61d0
mov rcx, qword [rsi + 0x70]
mov eax, dword [rcx + 0x60]
add rcx, 0x60
nop
mov edx, eax
and edx, 0xfffffffd
lock cmpxchg dword [rcx], edx
jne 0x1400bee40
test al, 4
jne 0x1400bf487
mov rax, qword [rsi]
mov rax, qword [rax + 0x28]
lea rcx, [0x1400cc080]
cmp rax, rcx
jne 0x1400bf5ed
mov rbx, qword [rsi - 0x10]
sub rbx, qword [rsi - 0x18]
shr rbx, 6
mov qword [rsp + 0x88], 0x111
movzx eax, byte [0x14023f0d1]
test al, al
jne 0x1400bf304
mov r14, qword [rsp + 0x40]
mov rdi, r14
and rdi, r13
mov rcx, r14
cmp rdi, qword [0x14022f688]
jne 0x1400beeb5
mov rcx, r14
call fcn.1400b3f20
mov rcx, qword [rsp + 0x40]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14022f688]
jne 0x1400beec9
call fcn.1400c5e10
mov qword [rsp + 0x40], 0
mov ebp, dword [rsp + 0x54]
mov r12d, dword [rsp + 0x50]
mov r15, qword [rsp + 0x48]
mov r13, r15
movabs rax, 0xfffffffc00000000
and r13, rax
mov rcx, r15
cmp r13, qword [0x14022f688]
jne 0x1400bef09
mov rcx, r15
call fcn.1400b3f20
mov rcx, qword [rsp + 0x48]
mov rax, rcx
movabs rdx, 0xfffffffc00000000
and rax, rdx
cmp rax, qword [0x14022f688]
jne 0x1400bef27
call fcn.1400c5e10
mov qword [rsp + 0x48], 0
mov rax, qword [r14]
mov rax, qword [rax + 8]
mov rcx, r14
mov rdx, r15
mov r8d, r12d
mov r9d, ebp
call qword [0x14021f820]
cmp r13, qword [0x14022f688]
jne 0x1400bef5a
mov rcx, r15
call fcn.1400b4080
cmp rdi, qword [0x14022f688]
movabs r13, 0xfffffffc00000000
movabs r12, 0xbfffffffffffffff
jne 0x1400bef7f
mov rcx, r14
call fcn.1400b4080
mov qword [rsp + 0x90], 0x111
movzx eax, byte [0x14023f0d1]
test al, al
jne 0x1400bf2dd
test rsi, rsi
je 0x1400bf265
mov rax, qword [rsi]
mov rax, qword [rax + 0x38]
lea rcx, [0x1400ccdf0]
cmp rax, rcx
jne 0x1400bf5fd
movapd xmm0, xmmword [0x1401fa0c0]
movapd xmmword [rsp + 0x60], xmm0
mov rax, qword [rsi - 0xc0]
mov byte [rsp + 0x60], 0
mov byte [rsp + 0x68], 0
mov qword [rsp + 0x70], rax
cmp byte [rsi + 0x138], 0
je 0x1400bf07a
cmp byte [rsi + 0x120], 0
je 0x1400bf07a
mov eax, dword [0x14023be10]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov r15, qword [rax + 0x160]
test r15, r15
je 0x1400bf07a
mov rax, qword [r15 + 0x10]
test rax, rax
js 0x1400bf532
cmp dword [r15 + 0x24], 1
jne 0x1400bf69f
cmp qword [r15 + 0x18], 0
jne 0x1400bf78f
lock and qword [r15 + 0x10], r12
mov rdi, qword [rsi + 0x128]
cmp qword [r15 + 0x18], 0
jne 0x1400bf7b5
mov rax, qword [r15 + 0x10]
movabs rcx, 0x4000000000000000
and rax, rcx
movabs rcx, 0xffffffffffffff
and rdi, rcx
or rdi, rax
mov qword [r15 + 0x10], rdi
dec dword [r15 + 0x24]
mov qword [rsi + 0x128], 0
mov byte [rsi + 0x130], 0
mov byte [rsi + 0x120], 0
mov byte [rsi + 0x138], 1
mov rax, qword [rsi + 0xf0]
mov ecx, dword [rax]
lea edx, [rcx + 1]
cmp edx, 1
adc ecx, 1
mov dword [rax], ecx
mov rax, qword [rsi - 0x18]
mov rcx, qword [rsi - 0x10]
cmp rax, rcx
je 0x1400bf265
mov rdx, rcx
sub rdx, rax
shr rdx, 6
cmp ebx, edx
jne 0x1400bf62b
cmp qword [rsi - 0x58], 0
je 0x1400bf246
cmp qword [rsi - 0x70], 0
je 0x1400bf246
mov rax, qword [rsi - 0x30]
test rax, rax
je 0x1400bf60d
mov rcx, qword [rax + 0xa8]
sub rcx, qword [rax + 0xa0]
cmp rcx, 0x40
jne 0x1400bf246
mov r15b, byte [rsi - 0x60]
mov ebp, 3
test r15b, r15b
jne 0x1400bf123
mov byte [rsi - 0x60], 1
mov ebp, 5
lea rdi, [rsi - 0x70]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x80], rax
mov rax, qword [fcn.1400fc780]
lea rcx, [0x140142f90]
lea rbx, [rsp + 0x90]
cmp rax, rcx
jne 0x1400bf50b
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400bf832
imul rax, rax, 0xf4240
cqo
idiv qword [0x14023f400]
mov rbx, rax
cmp byte [rsp + 0x68], 0
jne 0x1400bf19d
mov byte [rsp + 0x68], 1
mov qword [rsp + 0x60], rbx
mov rax, qword [rdi]
xor edx, edx
cmp rbx, rax
setns dl
movabs r14, 0x7fffffffffffffff
add rdx, r14
mov rcx, rbx
sub rcx, rax
mov qword [rsp + 0x80], rbx
cmovo rcx, rdx
cmp rcx, 0x1c9c37f
jg 0x1400bf22c
mov r12d, ebp
movabs r8, 0x8000000000000001
lea rax, [rcx + r8]
mov rdx, qword [rsi + r12*8 - 0xb8]
cmp rax, 1
jbe 0x1400bf80b
lea rax, [rdx + rcx]
sar rax, 0x3f
btc rax, 0x3f
add rdx, rcx
cmovo rdx, rax
mov qword [rsi + r12*8 - 0xb8], rdx
cmp rdx, 0x186a0
jge 0x1400bf4a8
cmp qword [rsi - 0x30], 0
je 0x1400bf610
mov al, byte [0x14023f06a]
test al, al
setne bpl
jne 0x1400bf6f4
mov byte [rsi - 0x38], bpl
mov qword [rsi - 0x70], rbx
mov rdi, qword [rsi - 0x10]
cmp qword [rsi - 0x18], rdi
je 0x1400bf5dc
cmp dword [rdi - 0x40], 0
mov dword [rdi - 0x40], 1
je 0x1400bf338
mov rcx, qword [rsp + 0x48]
mov rax, rcx
and rax, r13
cmp rax, qword [0x14022f688]
je 0x1400bf2cf
mov qword [rsp + 0x48], 0
mov rcx, qword [rsp + 0x40]
and r13, rcx
cmp r13, qword [0x14022f688]
je 0x1400bf2c8
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.140146540
nop
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [rsp + 0x90], 0
je 0x1400bf265
jmp 0x1400bf491
call fcn.1400c5e10
jmp 0x1400bf293
call fcn.1400c5e10
jmp 0x1400bf279
xor eax, eax
xchg byte [rbx + 8], al
jmp 0x1400bf265
movzx ecx, al
lea r8, [rsp + 0x60]
mov qword [r8], 0
lea rdx, [rsp + 0x90]
mov r9d, 2
call fcn.1400bf990
jmp 0x1400bef9a
movzx ecx, al
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x60]
mov qword [r9], rax
lea rax, str.IOHandler::OnIOCompleted
lea r8, [rsp + 0x90]
mov qword [r8], rax
lea rdx, [rsp + 0x88]
call fcn.1400c13c0
jmp 0x1400bee91
mov qword [rsp + 0x88], 0xa
mov cl, byte [0x14023efca]
test cl, cl
jne 0x1400bf3f1
mov rsi, qword [rdi - 0x18]
inc rsi
mov qword [rdi - 0x18], rsi
mov eax, dword [0x140245e80]
mov ecx, dword [0x14023be10]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400bf3c2
cmp dword [rdi - 0x20], 0
je 0x1400bf3bd
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r9d, eax
bts r9, 0x20
xor eax, eax
lea r8, [rsp + 0x90]
mov byte [r8], al
mov byte [r8 + 8], al
mov rdx, qword [rdi - 0x28]
mov qword [rsp + 0x20], rsi
lea rcx, [0x1402454f8]
call fcn.1400034d0
jmp 0x1400bf265
xor r9d, r9d
jmp 0x1400bf392
lea rcx, [0x140245e80]
call fcn.140143cb8
cmp dword [0x140245e80], 0xffffffff
jne 0x1400bf37e
lea rcx, [0x1402454f8]
call fcn.1400036d0
lea rcx, [0x140245e80]
call fcn.140143c58
jmp 0x1400bf37e
mov rax, qword [rdi - 0x10]
test rax, rax
je 0x1400bf85c
movzx ecx, cl
lea rdx, str.ThreadController_active
lea r8, [rsp + 0x90]
mov qword [r8], rdx
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x88]
mov r9d, 1
call fcn.1400c9a30
jmp 0x1400bf352
mov rax, qword [fcn.1400fc780]
lea rcx, [0x140142f90]
cmp rax, rcx
jne 0x1400bf51c
lea r14, [rsp + 0x60]
mov qword [r14], 0
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [r14]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400bf85f
imul rax, rax, 0xf4240
cqo
idiv qword [0x14023f400]
jmp 0x1400beb9b
call fcn.140003870
jmp 0x1400bee53
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x50], 0
jmp 0x1400bec76
cvtsi2sd xmm0, rdx
divsd xmm0, qword [0x14020bf40]
cvttsd2si r13d, xmm0
mov rcx, qword [rsi - 0x58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
mov edx, ebp
mov r8d, r13d
call qword [0x14021f820]
movsxd rax, r13d
imul rcx, rax, 0x3e8
mov rax, qword [rsi + r12*8 - 0xb8]
xor edx, edx
cmp rax, rcx
setns dl
add rdx, r14
sub rax, rcx
cmovo rax, rdx
mov qword [rsi + r12*8 - 0xb8], rax
movabs r13, 0xfffffffc00000000
jmp 0x1400bf221
mov rcx, rbx
call qword [0x14021f820]
mov rbx, qword [rbx]
jmp 0x1400bf198
lea r14, [rsp + 0x40]
mov rcx, r14
call qword [0x14021f820]
mov rax, qword [r14]
jmp 0x1400beb9b
mov rdx, qword [0x14023f558]
mov al, byte [rdx + 0xe0]
test al, 1
je 0x1400bf024
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r14, [rsp + 0x90]
mov qword [r14], rax
add rdx, 0xd8
mov rcx, r14
call fcn.1400bb110
mov rcx, r14
call fcn.1400bb0c0
jmp 0x1400bf024
mov rdx, qword [0x14023f558]
mov al, byte [rdx + 0xe0]
test al, 1
je 0x1400bedad
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rbx, [rsp + 0x90]
mov qword [rbx], rax
add rdx, 0xd8
mov rcx, rbx
call fcn.1400bb110
mov rcx, rbx
movabs rbx, 0x4000000000000000
call fcn.1400bb0c0
jmp 0x1400bedad
call fcn.1400c5e10
jmp 0x1400bec93
call fcn.1400c5e10
jmp 0x1400beccf
int3
mov rcx, rsi
call qword [0x14021f820]
jmp 0x1400bee53
mov rcx, rsi
call qword [0x14021f820]
mov ebx, eax
jmp 0x1400bee76
mov rcx, rsi
mov edx, ebx
call qword [0x14021f820]
jmp 0x1400bf265
int3
int3
mov rcx, rsi
call qword [0x14021f820]
mov rax, qword [rbx + 0x10]
mov rsi, qword [rax]
mov rcx, qword [rsi]
jmp 0x1400bed19
lea rdi, [rsi - 0x18]
add rcx, 0xffffffffffffffc0
lea rdx, [rsp + 0x60]
call fcn.1401b20b0
mov rcx, rdi
call fcn.1401b2110
jmp 0x1400bf246
cmp byte [rsi + 0x130], 0
je 0x1400bedc8
cmp qword [r14 + 0x18], 0
jne 0x1400bf67c
movabs rbx, 0x4000000000000000
lock or qword [r14 + 0x10], rbx
movabs r15, 0xffffffffffffff
jmp 0x1400bedc8
lea rcx, [r14 + 0x18]
mov rdi, qword [r14 + 0x10]
call fcn.1401a49e0
movabs rcx, 0xff00000000000000
and rcx, rdi
or rcx, rax
mov qword [r14 + 0x10], rcx
jmp 0x1400bf65e
cmp byte [rsi + 0x130], 0
je 0x1400bf03f
cmp qword [r15 + 0x18], 0
jne 0x1400bf6d1
movabs rax, 0x4000000000000000
lock or qword [r15 + 0x10], rax
movabs r13, 0xfffffffc00000000
jmp 0x1400bf03f
lea rcx, [r15 + 0x18]
mov rdi, qword [r15 + 0x10]
call fcn.1401a49e0
movabs rcx, 0xff00000000000000
and rcx, rdi
or rcx, rax
mov qword [r15 + 0x10], rcx
jmp 0x1400bf6b3
cmp byte [rsi - 0x38], 0
jne 0x1400bf711
mov qword [rsp + 0x78], 0xaa
mov al, byte [0x14023f06a]
test al, al
jne 0x1400bf911
test r15b, r15b
lea rcx, str.ApplicationTask
lea rax, str.NativeTask
cmove rax, rcx
mov qword [rsp + 0x88], 0xaa
mov cl, byte [0x14023f06a]
test cl, cl
jne 0x1400bf886
mov qword [rsp + 0x88], 0xaa
mov al, byte [0x14023f06a]
test al, al
jne 0x1400bf8c4
movabs r13, 0xfffffffc00000000
jmp 0x1400bf23e
lea rcx, [r14 + 0x18]
mov rdi, qword [r14 + 0x10]
call fcn.1401a49e0
movabs rcx, 0xff00000000000000
and rcx, rdi
or rcx, rax
mov qword [r14 + 0x10], rcx
jmp 0x1400bedc3
lea rcx, [r15 + 0x18]
mov rdi, qword [r15 + 0x10]
call fcn.1401a49e0
movabs rcx, 0xff00000000000000
and rcx, rdi
or rcx, rax
mov qword [r15 + 0x10], rcx
jmp 0x1400bf03a
lea rcx, [r15 + 0x18]
mov r14, qword [r15 + 0x10]
call fcn.1401a49e0
movabs rcx, 0xff00000000000000
and rcx, r14
or rcx, rax
mov qword [r15 + 0x10], rcx
jmp 0x1400bf051
lea rcx, [r14 + 0x18]
mov rbx, qword [r14 + 0x10]
call fcn.1401a49e0
movabs rcx, 0xff00000000000000
and rcx, rbx
movabs rbx, 0x4000000000000000
or rcx, rax
mov qword [r14 + 0x10], rcx
jmp 0x1400bedda
lea rax, [r8 - 1]
cmp rdx, rcx
je 0x1400bf4f4
movabs rcx, 0x8000000000000001
add rdx, rcx
cmp rdx, 1
ja 0x1400bf4f4
int3
mov rcx, qword [0x14023f400]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
mov rbx, rax
add rbx, r8
jmp 0x1400bf191
int3
mov rcx, qword [0x14023f400]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400beb9b
cmp byte [rsi - 0x40], 0
je 0x1400bf978
movzx ecx, cl
lea rdx, [rsi - 0x50]
lea r8, [rsp + 0x90]
mov qword [r8], rax
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdx
lea rdx, [rsp + 0x88]
mov r9d, 1
call fcn.14005cb40
jmp 0x1400bf740
cmp byte [rsi - 0x40], 0
je 0x1400bf97b
movzx ecx, al
lea rax, [rsi - 0x50]
lea r8, [rsp + 0x90]
mov qword [r8], 0
lea rdi, [rsp + 0x80]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x88]
mov r9d, 2
call fcn.1401b24a0
mov rbx, qword [rdi]
jmp 0x1400bf75a
mov rcx, 0xfffffffffff0bdc0
add rcx, qword [rsi - 0x70]
movabs rdx, 0x8000000000000000
cmovno rdx, rcx
mov qword [rsp + 0x90], rdx
cmp byte [rsi - 0x40], 0
je 0x1400bf97e
movzx ecx, al
lea rax, [rsi - 0x50]
lea rdx, str.MessagePumpPhases
lea r8, [rsp + 0x88]
mov qword [r8], rdx
lea rdx, [rsp + 0x90]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x78]
mov r9d, 3
call fcn.14005cb40
jmp 0x1400bf711
int3
int3
int3