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

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push r15
sub rsp, 0x160
mov rbp, qword [rcx + 0x40]
lea r8, [rsp + 0x90]
xor ebx, ebx
mov r15, rcx
cmp qword [rbp + 0xc8], rbx
jbe 0x14001040b
nop
cmp ebx, 0x14
jge 0x1400100a1
mov rcx, qword [rbp + 0xc8]
inc ebx
mov rax, qword [rbp + 0xc0]
lea rdx, [rcx - 1]
mov qword [rbp + 0xc8], rdx
mov rcx, qword [rax + rcx*8 - 8]
mov qword [r8], rcx
add r8, 8
test rdx, rdx
jne 0x140010070
test ebx, ebx
je 0x14001040b
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [0x140098b00], 0
je 0x140010121
mov eax, dword [r15 + 0x38]
lea rcx, [rsp + 0x188]
mov dword [rsp + 0x40], eax
xorps xmm0, xmm0
lea rax, str.EarlyStatNonGeneratedFile
mov dword [rsp + 0x68], 0x32
mov qword [rsp + 0x48], rax
movdqu xmmword [rsp + 0x50], xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x140010426
mov rax, qword [rsp + 0x188]
xor edx, edx
sub rax, qword [0x140098f18]
imul rax, rax, 0xf4240
div qword [0x140098f10]
add rax, qword [0x140098f20]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x158], rsi
mov rsi, qword [rsp + 0x180]
mov qword [rsp + 0x150], rdi
mov rdi, qword [rsp + 0x180]
mov qword [rsp + 0x148], r12
mov r12d, dword [rsp + 0x180]
movsxd rax, ebx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x180]
mov qword [rsp + 0x140], r13
xor r13d, r13d
mov qword [rsp + 0x198], rax
mov eax, dword [rsp + 0x180]
mov qword [rsp + 0x138], r14
mov r14, qword [rsp + 0x180]
mov dword [rsp + 0x188], eax
mov dword [rsp + 0x190], r12d
mov qword [rsp + 0x28], rsi
nop
cmp byte [0x140098b00], 0
mov rbx, qword [rsp + r13*8 + 0x90]
je 0x14001022c
movsxd rcx, dword [rbx]
lea r14, str.File
mov r12d, dword [r15 + 0x38]
xor eax, eax
sub eax, ecx
mov dword [rsp + 0x190], r12d
neg eax
mov qword [rsp + 0x198], 0
lea rdi, [rbx + rcx]
mov dword [rsp + 0x188], 0x1f4
sbb rax, rax
lea rcx, [rsp + 0x30]
and rdi, rax
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x140010433
mov rax, qword [rsp + 0x30]
xor edx, edx
sub rax, qword [0x140098f18]
imul rax, rax, 0xf4240
div qword [0x140098f10]
mov rsi, rax
add rsi, qword [0x140098f20]
mov qword [rsp + 0x28], rsi
movsxd rdx, dword [rbx]
xor ecx, ecx
mov r9d, dword [rbx + 4]
sub ecx, edx
neg ecx
sbb rcx, rcx
lea r8, [rbx + rdx]
mov rdx, qword [rbp + 0x1d0]
and r8, rcx
lea rcx, [rsp + 0x70]
call fcn.140049670
cmp byte [0x140098b00], 0
je 0x1400103a6
lea rcx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x140010419
mov rax, qword [rsp + 0x38]
xor edx, edx
sub rax, qword [0x140098f18]
movsxd rcx, dword [rsp + 0x188]
imul rax, rax, 0xf4240
div qword [0x140098f10]
mov r15, rax
sub r15, rsi
add r15, qword [0x140098f20]
cmp r15, rcx
jb 0x14001039e
movsxd rbx, r12d
shl rbx, 6
add rbx, qword [0x1400c1500]
movsxd rdx, dword [rbx + 0x38]
cmp edx, 0x8000
jae 0x14001039e
mov rax, qword [rbx + 0x30]
lea rcx, [rdx + rdx*4]
lea r12, [rax + rcx*8]
mov rcx, r14
lea eax, [rdx + 1]
mov edx, 0x20
mov dword [rbx + 0x38], eax
mov rax, qword [rsp + 0x198]
mov qword [r12 + 0x20], rax
mov qword [r12], rsi
call fcn.14004d738
mov rsi, rax
test rax, rax
je 0x140010344
test rdi, rdi
jne 0x140010344
mov r8, rax
mov rdx, r14
sub r8, r14
mov rcx, rbx
call fcn.140020970
mov qword [r12 + 0x10], rax
lea rdx, [rsi + 1]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x140010330
mov rcx, rbx
call fcn.140020970
jmp 0x140010394
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [r14 + r8], 0
jne 0x140010350
mov rdx, r14
mov rcx, rbx
call fcn.140020970
mov qword [r12 + 0x10], rax
test rdi, rdi
je 0x14001038d
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rdi + r8], 0
jne 0x140010376
mov rdx, rdi
mov rcx, rbx
call fcn.140020970
jmp 0x140010394
lea rax, [0x1400879b6]
mov qword [r12 + 0x18], rax
mov qword [r12 + 8], r15
mov r15, qword [rsp + 0x180]
inc r13
cmp r13, qword [rsp + 0x20]
je 0x1400103c2
mov rsi, qword [rsp + 0x28]
mov r12d, dword [rsp + 0x190]
jmp 0x1400101a0
lea rcx, [rsp + 0x40]
call fcn.140001250
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r13, qword [rsp + 0x140]
mov al, 1
mov r12, qword [rsp + 0x148]
mov rdi, qword [rsp + 0x150]
mov rsi, qword [rsp + 0x158]
mov r14, qword [rsp + 0x138]
add rsp, 0x160
pop r15
pop rbp
pop rbx
ret
xor al, al
add rsp, 0x160
pop r15
pop rbp
pop rbx
ret
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013bd0
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013bd0
int3
lea rcx, str.QueryPerformanceCounter_failed
call fcn.140013bd0
int3