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

Disassembly:
push rbp
push rbx
push r14
lea rbp, [rsp - 0x380]
sub rsp, 0x480
cmp byte [0x14009bbec], 0
mov rbx, rcx
mov r14, qword [rcx + 0x40]
je 0x1400119f7
mov eax, dword [rcx + 0x38]
xorps xmm0, xmm0
mov dword [rsp + 0x30], eax
lea rcx, [rbp + 0x3a0]
lea rax, str.FirstLock
mov dword [rsp + 0x58], 0x32
mov qword [rsp + 0x38], rax
movdqu xmmword [rsp + 0x40], xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x140011cea
mov rax, qword [rbp + 0x3a0]
xor edx, edx
sub rax, qword [0x14009c1f8]
imul rax, rax, 0xf4240
div qword [0x14009c1f0]
add rax, qword [0x14009c200]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x4b0], rsi
mov rcx, r14
mov qword [rsp + 0x470], r12
mov qword [rsp + 0x468], r13
mov qword [rsp + 0x460], r15
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, [rsp + 0x30]
call fcn.140001370
xor r12d, r12d
mov qword [rsp + 0x478], rdi
lea r15, str.WaitingForWork
lea r13, str.thread_state_sleeping
lea rsi, str.CheckDagSignatures
nop word [rax + rax]
cmp qword [0x1400d1360], r12
jne 0x140011abc
mov rdi, qword [rbx + 0x40]
mov rcx, rdi
cmp dword [rdi + 0xa0], 1
je 0x140011b76
cmp dword [rdi + 0xa0], 4
je 0x140011abc
cmp dword [rdi + 0x220], 3
jne 0x140011a8c
mov rax, qword [rdi + 0x100]
cmp byte [rax + 9], r12b
je 0x140011abc
mov rax, qword [rdi + 0x100]
cmp byte [rax + 0xc], r12b
jne 0x140011aa2
cmp dword [rdi + 0xa0], 3
jne 0x140011ab0
call fcn.140011310
test rax, rax
jne 0x140011b60
mov rcx, rbx
call fcn.140011510
test al, al
jne 0x140011a50
mov rcx, r14
call fcn.140011910
test al, al
je 0x140011c78
cmp byte [0x14009bbec], r12b
mov rdi, qword [rbx + 0x40]
je 0x140011b36
mov eax, dword [rbx + 0x38]
lea rcx, [rbp + 0x3a8]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], r13
mov dword [rsp + 0x58], 0x32
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x140011d04
mov rax, qword [rbp + 0x3a8]
xor edx, edx
sub rax, qword [0x14009c1f8]
imul rax, rax, 0xf4240
div qword [0x14009c1f0]
add rax, qword [0x14009c200]
mov qword [rsp + 0x50], rax
lea rcx, [rdi + 0x28]
mov r8d, 0xffffffff
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_SleepConditionVariableCS]
test eax, eax
je 0x140011cdd
lea rcx, [rsp + 0x30]
call fcn.140001370
jmp 0x140011a50
mov r9, rdi
mov r8, rax
mov rdx, rbx
mov rcx, rdi
call fcn.140010bc0
jmp 0x140011a50
mov dword [rdi + 0xa0], 2
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [0x14009bbec], r12b
mov byte [rsp + 0x60], r12b
je 0x140011bf0
mov eax, dword [rbx + 0x38]
lea rcx, [rbp + 0x3a0]
xorps xmm0, xmm0
mov dword [rsp + 0x30], eax
movdqu xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x58], 0x32
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x140011cf7
mov rax, qword [rbp + 0x3a0]
xor edx, edx
sub rax, qword [0x14009c1f8]
imul rax, rax, 0xf4240
div qword [0x14009c1f0]
add rax, qword [0x14009c200]
mov qword [rsp + 0x50], rax
mov rdx, qword [rdi + 0x110]
lea r8, [rbx + 8]
mov rcx, qword [rdi + 0x120]
lea r9, [rsp + 0x60]
call fcn.140016e80
mov rcx, rdi
movzx esi, al
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx ecx, sil
neg cl
lea rcx, [rdi + 0x28]
sbb edx, edx
add edx, 4
cmp dword [rdi + 0xb0], 1
mov dword [rdi + 0xa0], edx
jle 0x140011c3e
call qword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
jmp 0x140011c44
call qword [sym.imp.KERNEL32.dll_WakeConditionVariable]
test sil, sil
jne 0x140011c69
lea r8, [rsp + 0x60]
mov dword [rdi + 0x220], 4
lea rdx, str.Rebuilding_DAG_because__s
mov ecx, 3
call fcn.14003d840
lea rcx, [rsp + 0x30]
call fcn.140001370
jmp 0x140011a43
lea rcx, [r14 + 0x28]
call qword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
lea rcx, [r14 + 0x38]
call qword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r8d, dword [rbx + 0x38]
lea rdx, str.build_thread__d_exiting_n
mov ecx, 0x10
mov rdi, qword [rsp + 0x478]
mov r12, qword [rsp + 0x470]
mov r13, qword [rsp + 0x468]
mov rsi, qword [rsp + 0x4b0]
mov r15, qword [rsp + 0x460]
add rsp, 0x480
pop r14
pop rbx
pop rbp
jmp fcn.140014f80
lea rcx, str.SleepConditionVariableCS___failed
call fcn.140014f00
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140014f00
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140014f00
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140014f00
int3