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

Disassembly:
push rbp
push rbx
push r14
lea rbp, [rsp - 0x380]
sub rsp, 0x480
cmp byte [0x140099b70], 0
mov rbx, rcx
mov r14, qword [rcx + 0x40]
je 0x1400104c7
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 0x1400107ba
mov rax, qword [rbp + 0x3a0]
xor edx, edx
sub rax, qword [0x140099f88]
imul rax, rax, 0xf4240
div qword [0x140099f80]
add rax, qword [0x140099f90]
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.140001250
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 [0x1400cf0f0], r12
jne 0x14001058c
mov rdi, qword [rbx + 0x40]
mov rcx, rdi
cmp dword [rdi + 0xa0], 1
je 0x140010646
cmp dword [rdi + 0xa0], 4
je 0x14001058c
cmp dword [rdi + 0x220], 3
jne 0x14001055c
mov rax, qword [rdi + 0x100]
cmp byte [rax + 9], r12b
je 0x14001058c
mov rax, qword [rdi + 0x100]
cmp byte [rax + 0xc], r12b
jne 0x140010572
cmp dword [rdi + 0xa0], 3
jne 0x140010580
call fcn.14000fde0
test rax, rax
jne 0x140010630
mov rcx, rbx
call fcn.14000ffe0
test al, al
jne 0x140010520
mov rcx, r14
call fcn.1400103e0
test al, al
je 0x140010748
cmp byte [0x140099b70], r12b
mov rdi, qword [rbx + 0x40]
je 0x140010606
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 0x1400107d4
mov rax, qword [rbp + 0x3a8]
xor edx, edx
sub rax, qword [0x140099f88]
imul rax, rax, 0xf4240
div qword [0x140099f80]
add rax, qword [0x140099f90]
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 0x1400107ad
lea rcx, [rsp + 0x30]
call fcn.140001250
jmp 0x140010520
mov r9, rdi
mov r8, rax
mov rdx, rbx
mov rcx, rdi
call fcn.14000fa20
jmp 0x140010520
mov dword [rdi + 0xa0], 2
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [0x140099b70], r12b
mov byte [rsp + 0x60], r12b
je 0x1400106c0
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 0x1400107c7
mov rax, qword [rbp + 0x3a0]
xor edx, edx
sub rax, qword [0x140099f88]
imul rax, rax, 0xf4240
div qword [0x140099f80]
add rax, qword [0x140099f90]
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.140015a90
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 0x14001070e
call qword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
jmp 0x140010714
call qword [sym.imp.KERNEL32.dll_WakeConditionVariable]
test sil, sil
jne 0x140010739
lea r8, [rsp + 0x60]
mov dword [rdi + 0x220], 4
lea rdx, str.Rebuilding_DAG_because__s
mov ecx, 3
call fcn.14003bef0
lea rcx, [rsp + 0x30]
call fcn.140001250
jmp 0x140010513
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.140013ae0
lea rcx, str.SleepConditionVariableCS___failed
call fcn.140013a60
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013a60
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013a60
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013a60
int3