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

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
test rcx, rcx
je 0x18004d2bb
mov rbx, rdx
mov rsi, rcx
lea rdi, [rcx + 0x10]
mov rcx, rdi
call qword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov rax, qword [0x1801fb9f0]
shl rax, 1
test rax, rax
jne 0x18004d486
xor ebp, ebp
movzx eax, byte [rsi + 0x18]
test al, al
jne 0x18004d49d
cmp dword [rsi + 0x58], 0x3b9aca00
je 0x18004d323
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call qword [sym.imp.kernel32.dll_QueryPerformanceCounter]
test eax, eax
je 0x18004d4b0
mov r14, qword [rsp + 0x20]
mov rcx, qword [0x1801fb9d0]
test rcx, rcx
jne 0x18004d2a5
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call qword [sym.imp.kernel32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x18004d4b0
mov rcx, qword [rsp + 0x20]
mov qword [0x1801fb9d0], rcx
test rcx, rcx
je 0x18004d49d
mov rax, r14
or rax, rcx
shr rax, 0x20
je 0x18004d2c8
mov rax, r14
xor edx, edx
div rcx
jmp 0x18004d2cf
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov eax, r14d
xor edx, edx
div ecx
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x18004d2f3
xor edx, edx
div rcx
mov rcx, rax
jmp 0x18004d2f9
xor edx, edx
div ecx
mov ecx, eax
add rcx, r8
mov rax, rcx
shr rax, 9
movabs rdx, 0x44b82fa09b5a53
mul rdx
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub ecx, eax
mov qword [rsi + 0x50], rdx
mov dword [rsi + 0x58], ecx
movabs r15, 0x7fffffffffffffff
cmp dword [rsi + 0x48], 0x3b9aca00
jne 0x18004d35f
lea rcx, [rsi + 0x20]
cmp qword [rcx], 0
je 0x18004d45f
add qword [rsi + 0x28], rbx
cmp dword [rsi + 0x38], 0x3b9aca00
jne 0x18004d45f
call fcn.18004d5a0
jmp 0x18004d45f
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call qword [sym.imp.kernel32.dll_QueryPerformanceCounter]
test eax, eax
je 0x18004d4b0
mov r14, qword [rsp + 0x20]
mov rcx, qword [0x1801fb9d0]
test rcx, rcx
jne 0x18004d3bd
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x20]
call qword [sym.imp.kernel32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x18004d4b0
mov rcx, qword [rsp + 0x20]
mov qword [0x1801fb9d0], rcx
test rcx, rcx
je 0x18004d49d
mov rax, r14
or rax, rcx
shr rax, 0x20
je 0x18004d3d3
mov rax, r14
xor edx, edx
div rcx
jmp 0x18004d3da
mov eax, r14d
xor edx, edx
div ecx
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x18004d3fe
xor edx, edx
div rcx
mov rcx, rax
jmp 0x18004d404
xor edx, edx
div ecx
mov ecx, eax
add rcx, r8
mov r8, rcx
shr r8, 9
movabs r10, 0x44b82fa09b5a53
mov rax, r8
mul r10
mov r9, rdx
shr r9, 0xb
mov r11, qword [rsi + 0x40]
cmp r9, r11
jb 0x18004d45f
mov rax, r8
mul r10
cmp r9, r11
jne 0x18004d44a
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub ecx, eax
cmp dword [rsi + 0x48], ecx
ja 0x18004d45f
mov dword [rsi + 0x48], 0x3b9aca00
lea rcx, [rsi + 0x20]
cmp qword [rcx], 0
jne 0x18004d344
test bpl, bpl
jne 0x18004d470
mov rax, qword [0x1801fb9f0]
test rax, r15
jne 0x18004d4a1
mov rcx, rdi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
jmp qword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
call fcn.18016d440
mov ebp, eax
xor bpl, 1
movzx eax, byte [rsi + 0x18]
test al, al
je 0x18004d23a
ud2
call fcn.18016d440
test al, al
jne 0x18004d470
mov byte [rsi + 0x18], 1
jmp 0x18004d470
call fcn.1801572a5
ud2