Function at 0x180115f00
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, 0x48
cmp dword [rdx + 0xb8], 0x3b9aca00
je 0x18011638b
mov ebp, r8d
mov rdi, rdx
mov rbx, rcx
lea rsi, [rdx + 0x60]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [0x180219990]
shl rax, 1
test rax, rax
jne 0x18011636c
xor r14d, r14d
movzx eax, byte [rdi + 0x68]
movzx eax, byte [rdi + 0xa8]
test al, al
jne 0x18011638b
lea rdx, [rdi + 0x70]
lea rcx, [rsp + 0x28]
call fcn.1801169b0
mov r15, qword [rsp + 0x28]
mov r13, qword [rsp + 0x40]
test r13, r13
mov eax, 1
cmovne rax, r13
test r15, r15
cmove rax, r15
mov qword [rdi + 0xa0], rax
test r14b, r14b
jne 0x180115fb1
movabs rax, 0x7fffffffffffffff
mov rcx, qword [0x180219990]
test rcx, rax
jne 0x18011638f
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
movabs r12, 0x44b82fa09b5a53
test r15, r15
je 0x180116052
mov r14, qword [rdi + 0xb0]
mov r15d, dword [rdi + 0xb8]
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1801163a5
mov r12, qword [rsp + 0x28]
mov r8, qword [0x180219970]
test r8, r8
jne 0x180116039
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x1801163a5
mov r8, qword [rsp + 0x28]
mov qword [0x180219970], r8
test r8, r8
je 0x18011638b
mov rax, r12
or rax, r8
shr rax, 0x20
je 0x180116079
mov rax, r12
xor edx, edx
div r8
mov rcx, rax
jmp 0x180116083
cmp ebp, 0x3b9aca00
jne 0x1801161be
cmp byte [rbx + 0x30], 2
jne 0x180116201
mov rcx, qword [rbx]
add rcx, 0x10
call fcn.180115b10
jmp 0x180116234
mov eax, r12d
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
shr rdx, 0x20
movabs r12, 0x44b82fa09b5a53
je 0x1801160a7
xor edx, edx
div r8
jmp 0x1801160ac
xor edx, edx
div r8d
imul rcx, rcx, 0x3b9aca00
add rcx, rax
mov rax, rcx
shr rax, 9
mul r12
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub ecx, eax
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x30], ecx
lea rcx, [rsp + 0x28]
mov rdx, r14
mov r8d, r15d
call fcn.180104920
mov ecx, edx
imul rcx, rcx, 0x431bde83
shr rcx, 0x32
xor r8d, r8d
cmp edx, 0x3b9aca00
cmove rax, r8
cmove ecx, r8d
mov edx, 0x3e8
mul rdx
add rcx, rax
adc rdx, 0
mov rax, 0xfffffffffffffffd
cmove rax, rcx
sub r13, rax
cmovb r13, r8
mov rcx, r13
shr rcx, 3
movabs r8, 0x20c49ba5e353f7cf
mov rax, rcx
mul r8
shr rdx, 4
imul edx, edx, 0x3e8
mov eax, r13d
sub eax, edx
cmp r13, 0x3e7
ja 0x180116172
test eax, eax
jne 0x180116172
cmp byte [rbx + 0x30], 2
jne 0x1801161d7
mov rcx, qword [rbx]
xor edx, edx
mov eax, 2
lock cmpxchg qword [rcx + 0x20], rdx
jmp 0x180116234
imul r10d, eax, 0xf4240
mov rax, rcx
mul r8
shr rdx, 4
cmp r10d, ebp
mov r9d, ebp
cmovb r9d, r10d
cmp r13, 0x3e8
cmovae r9d, ebp
xor r8d, r8d
cmp ebp, 0x3b9aca00
cmove r8, rdx
cmove r9d, r10d
cmp byte [rbx + 0x30], 2
jne 0x1801161ef
mov rcx, qword [rbx]
add rcx, 0x10
mov rdx, r8
mov r8d, r9d
jmp 0x1801161d0
cmp byte [rbx + 0x30], 2
jne 0x180116219
mov rcx, qword [rbx]
add rcx, 0x10
xor edx, edx
mov r8d, ebp
call fcn.180116c90
jmp 0x180116234
cmp qword [rdi], 0
je 0x18011638b
mov rcx, rbx
mov rdx, rdi
xor r8d, r8d
xor r9d, r9d
jmp 0x18011622f
cmp qword [rdi], 0
je 0x18011638b
mov rcx, rbx
mov rdx, rdi
jmp 0x18011622f
cmp qword [rdi], 0
je 0x18011638b
mov rcx, rbx
mov rdx, rdi
mov r9d, 0x3b9aca00
jmp 0x18011622f
cmp qword [rdi], 0
je 0x18011638b
mov rcx, rbx
mov rdx, rdi
xor r8d, r8d
mov r9d, ebp
call fcn.1801163b0
mov rbx, qword [rdi + 0xb0]
mov edi, dword [rdi + 0xb8]
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1801163a5
mov r14, qword [rsp + 0x28]
mov r8, qword [0x180219970]
test r8, r8
jne 0x18011629f
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x1801163a5
mov r8, qword [rsp + 0x28]
mov qword [0x180219970], r8
test r8, r8
je 0x18011638b
mov rax, r14
or rax, r8
shr rax, 0x20
je 0x1801162b8
mov rax, r14
xor edx, edx
div r8
mov rcx, rax
jmp 0x1801162c2
mov eax, r14d
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x1801162dc
xor edx, edx
div r8
jmp 0x1801162e1
xor edx, edx
div r8d
imul rcx, rcx, 0x3b9aca00
add rcx, rax
mov rax, rcx
shr rax, 9
mul r12
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub ecx, eax
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x30], ecx
lea rcx, [rsp + 0x28]
mov rdx, rbx
mov r8d, edi
call fcn.180104920
mov ecx, edx
imul rcx, rcx, 0x431bde83
shr rcx, 0x32
xor r8d, r8d
cmp edx, 0x3b9aca00
cmove rax, r8
cmove ecx, r8d
mov edx, 0x3e8
mul rdx
add rcx, rax
adc rdx, 0
mov rdx, 0xfffffffffffffffd
cmove rdx, rcx
mov rcx, rsi
call fcn.180116de0
nop
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.180185070
mov r14d, eax
xor r14b, 1
movzx eax, byte [rdi + 0x68]
movzx eax, byte [rdi + 0xa8]
test al, al
je 0x180115f60
ud2
call fcn.180185070
test al, al
jne 0x180115fb1
mov byte [rdi + 0x68], 1
jmp 0x180115fb1
call fcn.18016fe79
ud2