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

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x3e0
mov qword [rsp + 0xf8], 0xfffffffffffffffe
mov rax, qword [0x1803fc9f0]
xor rax, rsp
mov qword [rsp + 0x3d0], rax
mov r15, r9
mov r13, r8
mov rsi, rdx
mov rdi, rcx
mov qword [rsp + 0xf0], rdx
mov r12, qword [rsp + 0x440]
cmp dword [rcx + 0x3bc], 0
je 0x1801e15e7
cmp qword [rdx], 0
je 0x1801e15e7
test r8, r8
je 0x1801e15e7
test r9, r9
je 0x1801e15e7
lea rbx, [0x18005f550]
mov rdx, qword [rdx]
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0x108], rdx
lea rcx, [rdx + 0x204]
add rdx, 4
mov eax, dword [rdi + 0x3d8]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rdx
mov r9, rbx
lea r8, [0x18005f580]
mov edx, 4
mov rcx, rdi
call fcn.1801e19a0
xor r14d, r14d
mov qword [rsp + 0xc0], r14
mov qword [rsp + 0xb8], r14
lea rcx, [rsp + 0xc0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov dword [rsp + 0xb0], r14d
mov dword [rsp + 0xac], r14d
mov dword [rsp + 0xa4], 0xffffffff
mov dword [rsp + 0xa0], 0xffffffff
mov dword [rsp + 0xa8], 1
mov dword [rsp + 0xb4], r14d
xor eax, eax
mov qword [rsp + 0x178], rax
mov qword [rsp + 0x180], rax
mov dword [rsp + 0x17c], 0x1b58
nop dword [rax]
cmp dword [rsp + 0xa8], 0
je 0x1801e1458
mov eax, dword [rsp + 0x178]
mov ecx, eax
inc eax
mov dword [rsp + 0x178], eax
cmp ecx, 3
jae 0x1801e1458
xor edx, edx
mov r8d, 0x240
lea rcx, [rsp + 0x190]
call fcn.1802c7550
lea rcx, [rdi + 0x2b0]
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], 0x240
lea rax, [rsp + 0x190]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xa4]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x178]
mov qword [rsp + 0x20], rax
mov r9d, dword [r15]
mov r8, r13
mov rdx, qword [rdi + 0x320]
call fcn.1802aff40
mov r9d, eax
mov dword [rsp + 0xb0], eax
mov qword [rsp + 0xe8], r14
test eax, eax
je 0x1801e12a4
cmp eax, 0xffff
je 0x1801e12a4
cmp dword [rsp + 0xa0], 0
jne 0x1801e12a4
cmp dword [rsp + 0xa4], 0
jne 0x1801e12a4
lea rax, [rsp + 0x1a8]
mov qword [rsp + 0xe8], rax
mov eax, dword [rsp + 0x1b4]
mov dword [rsp + 0x20], eax
lea r8, [rsp + 0x190]
lea rdx, [rsp + 0x158]
mov rcx, rdi
call fcn.1801dfc60
nop
mov rdx, rax
mov rcx, rsi
call fcn.1801dd6d0
nop
mov rcx, qword [rsp + 0x160]
test rcx, rcx
je 0x1801e11d8
mov qword [rsp + 0xc8], rcx
or eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1801e11d8
mov rbx, qword [rsp + 0xc8]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
or eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1801e11d1
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rbx, [0x18005f550]
mov eax, dword [rsp + 0x190]
mov dword [rsp + 0xac], eax
mov rcx, qword [rsi]
mov qword [rsp + 0x110], rcx
test rcx, rcx
je 0x1801e13b3
mov eax, dword [rsp + 0x1c0]
lea rax, [rsp + rax + 0x1bc]
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], rcx
mov rax, qword [rax]
mov qword [rcx + 0x2a0], rax
mov eax, dword [rsp + 0x1b8]
test eax, eax
je 0x1801e124b
cmp dword [rdi + 0x3d4], eax
je 0x1801e124b
mov rcx, rdi
call fcn.1801dea20
mov eax, dword [rsp + 0x1b8]
mov dword [rdi + 0x3d4], eax
mov eax, dword [rsp + 0x1bc]
test eax, eax
je 0x1801e1269
mov dword [rdi + 0x3cc], eax
xor ecx, ecx
call fcn.1802d7150
mov dword [rdi + 0x3d0], eax
mov rdx, rsi
mov rcx, rdi
call fcn.1801de540
mov qword [r12], rax
mov dword [rdi + 0x3d8], r14d
mov dword [rsp + 0xa8], r14d
mov rcx, qword [rsi]
mov qword [rsp + 0x128], rcx
mov rcx, qword [rcx + 0x280]
call qword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x1801e1453
cmp dword [rsp + 0x178], 3
jb 0x1801e13b3
mov dword [rsp + 0x28], r14d
mov eax, dword [rdi + 0x3c0]
mov dword [rsp + 0x20], eax
mov r9d, dword [r15 + 0xc]
mov r8d, dword [r15 + 8]
lea rdx, [rsp + 0x168]
mov rcx, rdi
call fcn.1801e0d70
mov qword [rsp + 0x130], rax
mov r14, qword [rax]
mov rcx, qword [rsp + 0x170]
test rcx, rcx
je 0x1801e1331
mov qword [rsp + 0xd0], rcx
or eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1801e1331
mov rbx, qword [rsp + 0xd0]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
or eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1801e1331
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test r14, r14
jne 0x1801e134e
mov rcx, qword [rsi]
mov qword [rsp + 0x138], rcx
mov rcx, qword [rcx + 0x280]
call qword [sym.imp.KERNEL32.dll_SetEvent]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0xd8], xmm0
lea rdx, [rsp + 0xd8]
mov rcx, rsi
call fcn.1801dd6d0
nop
mov rcx, qword [rsp + 0xe0]
test rcx, rcx
je 0x1801e13b0
or eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1801e13b0
mov rbx, qword [rsp + 0xe0]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
or eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1801e13b0
mov rcx, qword [rsp + 0xe0]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor r14d, r14d
mov rax, qword [rsi]
mov qword [rsp + 0x140], rax
test rax, rax
je 0x1801e15e9
mov qword [rsp + 0x148], rax
mov dword [rax + 0x26c], r14d
inc dword [rdi + 0x3d8]
mov edx, dword [rdi + 0x3d8]
lea rbx, [0x18005f550]
cmp edx, 3
jb 0x1801e1403
mov dword [rsp + 0xb4], 1
mov dword [rsp + 0xa8], r14d
jmp 0x1801e1453
mov rax, qword [rsi]
mov qword [rsp + 0x150], rax
lea rcx, [rax + 4]
mov dword [rsp + 0x40], edx
mov eax, dword [rsp + 0x178]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0xa4]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9, rbx
lea r8, [0x18005f5c0]
mov edx, 1
mov rcx, rdi
call fcn.1801e19a0
jmp 0x1801e1070
lea rcx, [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [rsp + 0xb8]
sub eax, dword [rsp + 0xc0]
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
mulss xmm1, dword [0x1800608d0]
xorps xmm0, xmm0
cvtsi2ss xmm0, qword [rdi + 0x3e0]
divss xmm1, xmm0
mov rdx, qword [rsi]
cmp byte [rdx + 0x104], 0
lea r8, [rdx + 0x104]
jne 0x1801e14ae
lea r8, [0x18005f224]
mov eax, dword [rdi + 0x2b4]
cvtps2pd xmm0, xmm1
lea rcx, [rdx + 4]
mov dword [rsp + 0x90], eax
mov eax, dword [rdi + 0x3d8]
mov dword [rsp + 0x88], eax
mov eax, dword [rdi + 0x3cc]
mov dword [rsp + 0x80], eax
mov eax, dword [rdi + 0x3d4]
mov dword [rsp + 0x78], eax
mov rax, qword [r12]
mov qword [rsp + 0x70], rax
movsd qword [rsp + 0x68], xmm0
mov eax, dword [r13 + 0xc]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x178]
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0xa4]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0xac]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0xb0]
mov dword [rsp + 0x38], eax
mov eax, dword [rdx + 0x26c]
mov dword [rsp + 0x30], eax
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x20], rcx
mov r9, rbx
lea r8, [0x18005f630]
mov edx, 4
mov rcx, rdi
call fcn.1801e19a0
cmp dword [rsp + 0xb4], 0
je 0x1801e15d2
mov dword [rdi + 0x3b8], r14d
mov dword [rdi + 0x3bc], r14d
mov eax, dword [rdi + 0x3c4]
mov dword [rdi + 0x3c8], eax
xor r8d, r8d
lea edx, [r8 + 3]
mov rcx, rdi
test eax, eax
mov eax, dword [rdi + 0x3d8]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
lea r9, [0x18005f5f8]
jne 0x1801e15ae
lea r9, [0x18005f6a8]
call fcn.1801e19a0
mov dword [rdi + 0x3d8], r14d
mov rcx, qword [rdi + 0x2a0]
test rcx, rcx
je 0x1801e15d2
mov eax, dword [rdi + 0x3c4]
mov dword [rcx + 0x1dc], eax
jmp 0x1801e15dc
mov rax, qword [rsi]
mov eax, dword [rax + 0x26c]
jmp 0x1801e15e9
xor eax, eax
mov rcx, qword [rsp + 0x3d0]
xor rcx, rsp
call fcn.1802b85a0
add rsp, 0x3e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret