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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov ebx, dword [rsp + 0xa0]
mov rsi, rcx
cmp ebx, 0x14
lea rcx, [rsp + 0x88]
mov r13d, 1
mov r15d, 0xa
cmova r13d, r15d
mov r12d, r9d
mov ebp, r8d
mov r14, rdx
call qword [sym.imp.kernel32.dll_QueryPerformanceCounter]
mov r8d, ebx
movabs rax, 0x20c49ba5e353f7cf
imul r8, qword [rsi + 0x288]
imul r8
mov rdi, rdx
sar rdi, 7
mov rax, rdi
shr rax, 0x3f
add rdi, rax
add rdi, qword [rsp + 0x88]
cmp ebp, 3
jne 0x14000162b
mov edx, ebp
mov rcx, qword [rsi + 0x280]
call qword [sym.imp.kernel32.dll_WaitForSingleObject]
mov edx, r13d
mov rcx, qword [rsi + 0x280]
call qword [sym.imp.kernel32.dll_WaitForSingleObject]
test r14, r14
je 0x140001745
cmp r12d, 0x216
ja 0x140001745
mov dword [r14 + 0x10], SafeArrayGetDim
lea rbx, [r14 + 0x28]
mov dword [r14 + 0x18], 0x223
mov eax, dword [rsi + 0x28]
mov dword [r14 + 0x1c], eax
mov byte [rbx], bpl
mov dword [r14 + 0x20], r12d
test dword [0x140071d00], 0x2000000
je 0x14000150f
mov r8d, dword [rsi + 0x28]
lea rdx, [0x14004ff70]
mov rcx, qword [0x140071d10]
xor r9d, r9d
call fcn.140002770
lea eax, [rbp - 3]
test eax, 0xfffffffa
jne 0x14000152c
cmp ebp, 4
je 0x14000152c
lea rcx, [rsp + 0x80]
call qword [sym.imp.kernel32.dll_QueryPerformanceCounter]
mov rcx, qword [rsi + 0x18]
xor r9d, r9d
mov r8d, 0x23f
mov dword [rsp + 0x20], 0
mov rdx, r14
call fcn.1400031a0
lea ecx, [rbp - 3]
mov r15d, eax
test ecx, 0xfffffffa
jne 0x14000155c
cmp ebp, 4
jne 0x14000156a
lea rcx, [rsp + 0x80]
call qword [sym.imp.kernel32.dll_QueryPerformanceCounter]
cmp ebp, 0xb
jle 0x14000157f
mov rcx, rsi
call fcn.140001f40
test eax, eax
js 0x140001709
test r15d, r15d
js 0x140001663
test dword [0x140071d04], 0x20000
je 0x1400015c1
lfence
movzx eax, word [r14 + 0x24]
lea rdx, [0x14004ff40]
movzx r9d, byte [rbx]
mov r8d, dword [rsi + 0x28]
mov rcx, qword [0x140071d10]
mov qword [rsp + 0x28], rbx
mov word [rsp + 0x20], ax
call fcn.1400026e0
cmp ebp, 0xc
jne 0x1400015d5
mov eax, dword [r14 + 0x24]
cmp eax, r12d
jae 0x1400015d5
test eax, eax
cmovne r12d, eax
cmp dword [r14 + 0x24], r12d
jne 0x14000168c
movzx eax, byte [rbx]
cmp ebp, eax
jne 0x14000168c
cmp qword [rsp + 0x80], rdi
jg 0x140001702
test dword [0x140071d00], 0x2000000
je 0x140001623
lfence
movzx r9d, byte [r14 + 0x28]
lea rdx, [0x14004ff60]
mov r8d, dword [rsi + 0x28]
mov rcx, qword [0x140071d10]
call fcn.140002770
mov eax, r15d
jmp 0x14000174a
cmp ebp, 7
jne 0x140001638
mov edx, r15d
jmp 0x140001494
cmp ebp, r15d
jne 0x1400014a1
cmp dword [rsi + 0x2c], 1
jne 0x140001651
mov edx, 5
jmp 0x1400014a4
mov edx, 3
mov rcx, rsi
call fcn.1400023c0
jmp 0x1400014b1
test dword [0x140071d00], 0x2000000
je 0x14000168c
mov r8d, dword [rsi + 0x28]
lea rdx, [0x14004ff80]
mov rcx, qword [0x140071d10]
mov r9d, 1
call fcn.140002770
cmp ebp, 0xa
jne 0x1400016e4
cmp dword [rsi + 0x2c], 2
jne 0x1400016e4
lea rcx, [rsp + 0x30]
call qword [sym.imp.kernel32.dll_QueryPerformanceCounter]
mov ecx, r13d
movabs rax, 0x20c49ba5e353f7cf
imul rcx, qword [rsi + 0x288]
imul rcx
mov rbx, rdx
sar rbx, 7
mov rax, rbx
shr rax, 0x3f
add rbx, rax
add rbx, qword [rsp + 0x30]
lea rcx, [rsp + 0x38]
call qword [sym.imp.kernel32.dll_QueryPerformanceCounter]
cmp qword [rsp + 0x38], rbx
jle 0x1400016d0
jmp 0x1400016f4
mov rcx, qword [rsi + 0x280]
mov edx, r13d
call qword [sym.imp.kernel32.dll_WaitForSingleObject]
cmp qword [rsp + 0x80], rdi
jle 0x1400014b1
mov eax, 0x8001011f
jmp 0x14000174a
test dword [0x140071d04], 0x20000
je 0x140001745
lfence
mov r8d, dword [rsi + 0x28]
lea rdx, [0x14004ffe0]
mov rcx, qword [0x140071d10]
mov r9d, 1
mov dword [rsp + 0x28], eax
lea rax, str.LI_Failure_during_auth_:_Read
mov qword [rsp + 0x20], rax
call fcn.1400027d0
mov eax, 0x80004005
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret