Function at 0x140004dd0
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x138
movapd xmmword [rsp + 0x120], xmm10
movapd xmmword [rsp + 0x110], xmm9
movaps xmmword [rsp + 0x100], xmm8
movaps xmmword [rsp + 0xf0], xmm7
movaps xmmword [rsp + 0xe0], xmm6
mov rsi, rcx
mov rax, qword [0x14016c028]
xor rax, rsp
mov qword [rsp + 0xd8], rax
movabs rdi, 0xaaaaaaaaaaaaaaaa
test byte [0x14016e010], 0x19
jne 0x14000569d
mov rcx, qword [rsi + 0x60]
test rcx, rcx
jne 0x140005709
mov rcx, qword [rsi + 0x48]
mov rdx, rsi
call fcn.140006960
call fcn.140037240
test al, al
jne 0x140005714
xor r13d, r13d
lea rcx, [rsp + 0xc0]
mov qword [rcx], rdi
call fcn.140017190
test r13b, r13b
jne 0x14000573d
test byte [0x14016e010], 0x19
jne 0x140005779
mov rax, qword [rsi + 0x48]
mov rax, qword [rax + 0x38]
mov rax, qword [rax + 0x90]
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, qword [0x14015dac0]
lea rcx, [rsi + 0x30]
mov qword [rsp + 0x58], rcx
movsd xmm8, qword [0x14015dac8]
ucomisd xmm8, xmm0
jb 0x140005685
ucomisd xmm0, qword [0x14015dad0]
jb 0x140005685
cvttsd2si rax, xmm0
mov qword [rsp + 0xa0], rax
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
je 0x14000568e
lea rdx, [rsp + 0xa0]
mov rcx, qword [rsp + 0x58]
call fcn.140006270
test byte [0x14016e010], 0x19
jne 0x1400057e5
mov al, byte [rsi + 0x40]
test al, al
jne 0x1400052ac
mov r15, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
movaps xmm7, xmmword [0x140146a10]
lea rbx, [rsp + 0x90]
movsd xmm9, qword [0x14015dac0]
movsd xmm10, qword [0x14015dad0]
lea r14, [rsp + 0x80]
xorps xmm6, xmm6
nop word cs:[rax + rax]
nop dword [rax]
movzx eax, byte [rsi + 0x70]
test al, al
jne 0x1400052ac
mov r12, qword [rsi + 0x50]
lea rbp, [r12 + 0x58]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140005264
mov rcx, qword [r12 + 0x60]
test rcx, rcx
jne 0x140005241
mov rcx, rbp
call r15
movaps xmmword [rsp + 0xa0], xmm7
mov qword [rsp + 0xb0], rdi
mov byte [rsp + 0xa0], 0
test r13b, r13b
jne 0x14000537e
mov rax, qword [rsi + 0x50]
mov rax, qword [rax + 0x30]
mov eax, dword [rax]
test al, 1
jne 0x14000525a
mov ebp, dword [rsi + 0x68]
cmp dword [rsi + 0x6c], ebp
jne 0x14000536f
movaps xmmword [rsp + 0x90], xmm7
mov rcx, qword [rsi + 0x48]
mov rdx, rbx
mov r8, rsi
call fcn.14010a8f0
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x140005120
mov rcx, qword [rsi + 0x50]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x90], 0
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x98], 0
mov qword [rsp + 0x78], rax
mov rdx, r14
lea r8, [rsp + 0x70]
call fcn.140005f00
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x14000505a
mov rax, qword [rsp + 0x98]
test rax, rax
jne 0x140005533
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0x90], 0
test rcx, rcx
jne 0x1400053d8
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x80], 0
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x90], rax
test rcx, rcx
jne 0x1400053fb
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x98], rax
mov rcx, r14
call fcn.140005d10
mov rcx, qword [rsi + 0x48]
movapd xmm0, xmmword [rsp + 0x90]
movupd xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x90], xmm6
lea rdx, [rsp + 0x60]
call fcn.14010acb0
mov rcx, qword [rsi + 0x30]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov rcx, rbx
call fcn.140005d10
cmp byte [rsp + 0xa0], 0
jne 0x14000539c
movzx eax, byte [rsi + 0x40]
test al, al
je 0x140004f60
jmp 0x1400052ac
movzx eax, byte [rsi + 0x40]
test al, al
jne 0x140005291
movzx eax, byte [rsi + 0x70]
test al, al
jne 0x140005291
mov rdi, qword [rsi + 0x50]
lea rbp, [rdi + 0x58]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140005362
mov rcx, qword [rdi + 0x60]
test rcx, rcx
jne 0x140005271
mov rcx, rbp
call r15
movabs rdi, 0xaaaaaaaaaaaaaaaa
test byte [0x14016e010], 0x19
jne 0x14000541e
cmp byte [rsp + 0xa0], 0
jne 0x14000548a
mov rax, qword [rsi + 0x48]
mov rcx, qword [rax]
lea rdx, [0x1400da850]
cmp qword [rcx + 0x30], rdx
jne 0x140005212
mov rax, qword [rax + 0x38]
mov rax, qword [rax + 0x90]
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, xmm9
ucomisd xmm8, xmm0
jb 0x1400053ae
ucomisd xmm0, xmm10
jb 0x1400053ae
cvttsd2si rax, xmm0
mov qword [rsp + 0x80], rax
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
je 0x140005206
mov rcx, qword [rsp + 0x58]
mov rdx, r14
call fcn.140006270
test byte [0x14016e010], 0x19
je 0x1400050f7
jmp 0x1400054a3
mov rcx, qword [rsp + 0x58]
call fcn.140003000
jmp 0x1400051f4
mov rax, qword [rax + 0x38]
mov rax, qword [rax + 0x90]
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mulsd xmm0, xmm9
ucomisd xmm8, xmm0
jb 0x140005662
ucomisd xmm0, xmm10
jae 0x1400051cb
jmp 0x140005662
call fcn.140006750
mov r12d, eax
mov rcx, rbp
call r15
test r12b, r12b
je 0x140004f9a
jmp 0x1400052ac
mov ebp, 1
jmp 0x140004fd0
mov rcx, rbp
call fcn.1400067c0
jmp 0x140004f86
call fcn.140006750
mov edi, eax
mov rcx, rbp
call r15
test dil, dil
movabs rdi, 0xaaaaaaaaaaaaaaaa
je 0x14000516e
lea rcx, [rsp + 0x90]
call fcn.140005d10
cmp byte [rsp + 0xa0], 0
jne 0x140005b9c
mov rcx, qword [rsi + 0x48]
mov rdx, rsi
call fcn.1400068e0
mov rcx, qword [rsi + 0x60]
test rcx, rcx
jne 0x140005851
mov rdi, qword [rsi + 0x10]
mov qword [rsi + 0x10], 0
test rdi, rdi
je 0x1400052dc
lock dec dword [rdi + 8]
je 0x140005345
test byte [0x14016e010], 0x19
jne 0x14000585c
lea rcx, [rsp + 0xc0]
call fcn.140006770
mov rcx, qword [rsp + 0xd8]
xor rcx, rsp
call fcn.14010e4a0
movaps xmm6, xmmword [rsp + 0xe0]
movaps xmm7, xmmword [rsp + 0xf0]
movaps xmm8, xmmword [rsp + 0x100]
movaps xmm9, xmmword [rsp + 0x110]
movaps xmm10, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
add rdi, 8
add rdi, 0xfffffffffffffff8
mov rcx, rdi
call fcn.140002ef0
mov rcx, rdi
call fcn.14010b880
jmp 0x1400052dc
mov rcx, rbp
call fcn.1400067c0
jmp 0x140005151
mov ecx, ebp
call fcn.140004700
mov dword [rsi + 0x6c], ebp
jmp 0x140004fd9
lea rbp, [rsp + 0xa8]
mov edx, 0x989680
mov rcx, rbp
call fcn.1400da980
mov byte [rbp - 8], 1
jmp 0x140004fbb
lea rcx, [rsp + 0xa8]
call fcn.1400cedf0
jmp 0x14000510d
test rax, rax
js 0x14000550f
movabs rax, 0x7fffffffffffffff
mov qword [rsp + 0x80], rax
movabs rdi, 0xaaaaaaaaaaaaaaaa
jmp 0x140005206
lock dec dword [rcx + 8]
jne 0x140005077
add rcx, 8
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
mov edx, 1
call qword [rax + 0x18]
jmp 0x140005077
lock dec dword [rcx + 8]
jne 0x1400050a4
add rcx, 8
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
mov edx, 1
call qword [rax + 0x18]
jmp 0x1400050a4
call sub.KERNEL32.dll_GetCurrentThreadId
mov r12d, eax
mov qword [rsp + 0xd0], rdi
mov rax, qword [0x14016f388]
lea rcx, [0x140101a70]
cmp rax, rcx
jne 0x140005c8c
lea rbp, [rsp + 0x80]
mov qword [rbp], 0
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbp]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x140005566
imul rax, rax, 0xf4240
cqo
idiv qword [0x140173b60]
jmp 0x140005588
lea rbp, [rsp + 0xa8]
mov rcx, rbp
call fcn.1400cedf0
mov byte [rbp - 8], 0
jmp 0x140005189
call sub.KERNEL32.dll_GetCurrentThreadId
mov r12d, eax
mov qword [rsp + 0xd0], rdi
mov rax, qword [0x14016f388]
lea rcx, [0x140101a70]
cmp rax, rcx
jne 0x140005c9b
lea rbp, [rsp + 0x80]
mov qword [rbp], 0
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbp]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400055e4
imul rax, rax, 0xf4240
cqo
idiv qword [0x140173b60]
jmp 0x140005606
movabs rax, 0x7fffffffffffffff
inc rax
mov qword [rsp + 0x80], rax
movabs rdi, 0xaaaaaaaaaaaaaaaa
jmp 0x1400051e7
lea r8, [rsp + 0xd0]
mov qword [r8], rcx
mov qword [rsp + 0x90], 0
lea rbp, [rsp + 0xc8]
mov rcx, rax
mov rdx, rbp
call fcn.140006630
mov rcx, qword [rbp]
jmp 0x14000506e
mov rcx, qword [0x140173b60]
cqo
idiv rcx
imul rbp, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, rbp
mov qword [rsp + 0xd0], rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], r12d
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14016e010]
lea r8, str.WorkerThread_active
mov cl, 0x45
xor r9d, r9d
call fcn.14000c950
movabs rdi, 0xaaaaaaaaaaaaaaaa
jmp 0x14000517b
mov rcx, qword [0x140173b60]
cqo
idiv rcx
imul rbp, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, rbp
mov qword [rsp + 0xd0], rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], r12d
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14016e010]
lea r8, str.WorkerThread_active
mov cl, 0x42
xor r9d, r9d
call fcn.14000c950
movabs rdi, 0xaaaaaaaaaaaaaaaa
jmp 0x1400050f7
test rax, rax
jns 0x140005206
movabs rax, 0x7fffffffffffffff
inc rax
mov qword [rsp + 0x80], rax
jmp 0x1400051e7
test rax, rax
js 0x1400058cf
mov rcx, qword [rsp + 0x58]
call fcn.140003000
jmp 0x140004f07
movabs r14, 0x8637bd05af7
call sub.KERNEL32.dll_GetCurrentThreadId
mov rcx, rdi
mov edi, eax
mov qword [rsp + 0x90], rcx
mov rax, qword [0x14016f388]
lea r15, [0x140101a70]
cmp rax, r15
jne 0x140005caa
lea rbx, [rsp + 0xa0]
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
cmp rax, r14
jge 0x1400058e9
imul rax, rax, 0xf4240
cqo
idiv qword [0x140173b60]
jmp 0x14000590b
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x140004e49
mov rax, qword [rsi + 0x50]
mov rax, qword [rax + 0x30]
mov eax, dword [rax]
test al, 1
jne 0x140005d04
cmp dword [rsi + 0x68], 0
setne r13b
movabs rdi, 0xaaaaaaaaaaaaaaaa
jmp 0x140004e65
lea rdi, [rsp + 0xa0]
mov rcx, rdi
mov edx, 2
call fcn.140017190
lea rcx, [rsp + 0xc0]
mov rdx, rdi
call fcn.1400da8f0
mov rcx, rdi
movabs rdi, 0xaaaaaaaaaaaaaaaa
call fcn.140006770
jmp 0x140004e7e
call sub.KERNEL32.dll_GetCurrentThreadId
mov rcx, rdi
mov edi, eax
mov qword [rsp + 0x90], rcx
mov rax, qword [0x14016f388]
lea rcx, [0x140101a70]
cmp rax, rcx
jne 0x140005cb9
lea rbx, [rsp + 0xa0]
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 0x1400059c7
imul rax, rax, 0xf4240
cqo
idiv qword [0x140173b60]
jmp 0x1400059e9
call sub.KERNEL32.dll_GetCurrentThreadId
mov rcx, rdi
mov edi, eax
mov qword [rsp + 0x90], rcx
mov rax, qword [0x14016f388]
lea rcx, [0x140101a70]
cmp rax, rcx
jne 0x140005cc8
lea rbx, [rsp + 0xa0]
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 0x140005a42
imul rax, rax, 0xf4240
cqo
idiv qword [0x140173b60]
jmp 0x140005a64
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x1400052c5
movabs r14, 0x8637bd05af7
call sub.KERNEL32.dll_GetCurrentThreadId
mov esi, eax
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x90], rax
mov rax, qword [0x14016f388]
lea rbp, [0x140101a70]
cmp rax, rbp
jne 0x140005cd7
lea rdi, [rsp + 0xa0]
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
cmp rax, r14
jge 0x140005abf
imul rax, rax, 0xf4240
cqo
idiv qword [0x140173b60]
jmp 0x140005ae1
movabs rax, 0x7fffffffffffffff
inc rax
mov qword [rsp + 0xa0], rax
jmp 0x140004ef5
mov rcx, qword [0x140173b60]
cqo
idiv rcx
imul rbp, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, rbp
mov qword [rsp + 0x90], rax
lea rbp, [rsp + 0x90]
mov qword [rsp + 0x38], rbp
mov dword [rsp + 0x30], edi
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 8
mov qword [rsp + 0x40], 0
lea rdx, [0x14016e010]
lea r8, str.WorkerThread_born
mov cl, 0x49
xor r9d, r9d
call fcn.14000c950
test byte [0x14016e010], 0x19
movabs rdi, 0xaaaaaaaaaaaaaaaa
je 0x140004e3c
call sub.KERNEL32.dll_GetCurrentThreadId
mov rcx, rdi
mov edi, eax
mov qword [rsp + 0x90], rcx
mov rax, qword [0x14016f388]
cmp rax, r15
jne 0x140005ce6
lea rbx, [rsp + 0xa0]
mov qword [rbx], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rbx]
cmp rax, r14
jge 0x140005bae
imul rax, rax, 0xf4240
cqo
idiv qword [0x140173b60]
jmp 0x140005bd0
mov rcx, qword [0x140173b60]
cqo
idiv rcx
imul rbp, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, rbp
mov qword [rsp + 0x90], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], edi
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14016e010]
lea r8, str.WorkerThread_active
mov cl, 0x45
xor r9d, r9d
call fcn.14000c950
movabs rdi, 0xaaaaaaaaaaaaaaaa
jmp 0x140004e8b
mov rcx, qword [0x140173b60]
cqo
idiv rcx
imul rbp, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, rbp
mov qword [rsp + 0x90], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], edi
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14016e010]
lea r8, str.WorkerThread_active
mov cl, 0x42
xor r9d, r9d
call fcn.14000c950
movabs rdi, 0xaaaaaaaaaaaaaaaa
jmp 0x140004f14
mov rcx, qword [0x140173b60]
cqo
idiv rcx
imul rbx, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, rbx
mov qword [rsp + 0x90], rax
lea rbx, [rsp + 0x90]
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], esi
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14016e010]
lea r8, str.WorkerThread_active
mov cl, 0x45
xor r9d, r9d
call fcn.14000c950
test byte [0x14016e010], 0x19
je 0x1400052e9
call sub.KERNEL32.dll_GetCurrentThreadId
mov esi, eax
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x90], rax
mov rax, qword [0x14016f388]
cmp rax, rbp
jne 0x140005cf5
lea rdi, [rsp + 0xa0]
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
cmp rax, r14
jge 0x140005c21
imul rax, rax, 0xf4240
cqo
idiv qword [0x140173b60]
jmp 0x140005c43
lea rcx, [rsp + 0xa8]
call fcn.1400cedf0
jmp 0x1400052ac
mov rcx, qword [0x140173b60]
cqo
idiv rcx
imul rbx, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, rbx
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x38], rbp
mov dword [rsp + 0x30], edi
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14016e010]
lea r8, str.WorkerThread_active
mov cl, 0x42
xor r9d, r9d
call fcn.14000c950
movabs rdi, 0xaaaaaaaaaaaaaaaa
jmp 0x140004e3c
mov rcx, qword [0x140173b60]
cqo
idiv rcx
imul rbp, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, rbp
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x30], esi
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 8
mov qword [rsp + 0x40], 0
lea rdx, [0x14016e010]
lea r8, str.WorkerThread_dead
mov cl, 0x49
xor r9d, r9d
call fcn.14000c950
jmp 0x1400052e9
lea rcx, [rsp + 0xd0]
call rax
jmp 0x140005590
lea rcx, [rsp + 0xd0]
call rax
jmp 0x14000560e
lea rcx, [rsp + 0x90]
call rax
jmp 0x140005913
lea rcx, [rsp + 0x90]
call rax
jmp 0x1400059f1
lea rcx, [rsp + 0x90]
call rax
jmp 0x140005a6c
lea rcx, [rsp + 0x90]
call rax
jmp 0x140005ae9
lea rcx, [rsp + 0x90]
call rax
jmp 0x140005bd8
lea rcx, [rsp + 0x90]
call rax
jmp 0x140005c4b
mov r13b, 1
jmp 0x14000572e