Function at 0x18000fe20
Capabilities:
Check for time delay via gettickcount

Disassembly:
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x38
mov rax, qword [0x18009afa0]
xor ebx, ebx
mov rdi, rcx
cmp rax, 0xffffffffffffffff
je 0x18000fe9e
cmp rax, rcx
jne 0x18000fe9e
mov eax, dword [0x18009b3be]
mov dword [rsp + 0x20], ebx
xchg dword [rsp + 0x20], eax
mov edx, dword [rsp + 0x20]
cmp edx, 1
jne 0x18000fe9e
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r11d, eax
mov eax, dword [0x18009b3c2]
cmp r11d, eax
jb 0x18000fe9e
sub r11d, eax
mov eax, 0x10624dd3
mul r11d
shr edx, 6
cmp edx, 0x12c
jb 0x18000fe9e
mov r8, qword [0x18009afa0]
mov rcx, qword [0x18009b458]
lea r9d, [rbx + 0x20]
mov edx, 0x40a
call qword [sym.imp.USER32.dll_PostMessageA]
cmp rdi, rbx
jne 0x18000ffbb
call qword [sym.imp.KERNEL32.dll_GetTickCount]
lea rcx, [0x18009ad38]
mov dword [0x18009b61c], eax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, dword [0x180099cfc]
inc r11d
lea rcx, [0x18009ad38]
xchg dword [0x18009b610], r11d
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [0x18009b5f0]
mov dword [rsp + 0x60], ebx
mov dword [rsp + 0x68], ebx
mov dword [rsp + 0x24], ebx
xchg dword [rsp + 0x60], eax
mov ecx, dword [0x18009b5f8]
xchg dword [rsp + 0x68], ecx
mov eax, dword [0x18009b5f4]
xchg dword [rsp + 0x24], eax
mov ecx, dword [rsp + 0x68]
cmp dword [rsp + 0x60], ecx
mov eax, ecx
cmovg eax, dword [rsp + 0x60]
cmp eax, dword [rsp + 0x24]
mov dword [rsp + 0x60], eax
jle 0x18000ff2b
xchg dword [0x18009b5f4], eax
mov ecx, dword [rsp + 0x68]
xchg dword [0x18009b5fc], ecx
mov dword [rsp + 0x68], ebx
mov dword [rsp + 0x60], ebx
mov eax, ebx
xchg dword [0x18009b5f0], eax
mov ecx, dword [rsp + 0x68]
xchg dword [0x18009b5f8], ecx
mov eax, dword [0x18009b600]
mov dword [rsp + 0x70], ebx
mov dword [rsp + 0x78], ebx
mov dword [rsp + 0x28], ebx
xchg dword [rsp + 0x70], eax
mov ecx, dword [0x18009b608]
xchg dword [rsp + 0x78], ecx
mov eax, dword [0x18009b604]
xchg dword [rsp + 0x28], eax
mov ecx, dword [rsp + 0x78]
cmp dword [rsp + 0x70], ecx
mov eax, ecx
cmovg eax, dword [rsp + 0x70]
cmp eax, dword [rsp + 0x28]
mov dword [rsp + 0x70], eax
jle 0x18000ff98
xchg dword [0x18009b604], eax
mov ecx, dword [rsp + 0x78]
xchg dword [0x18009b60c], ecx
mov dword [rsp + 0x78], ebx
mov dword [rsp + 0x70], ebx
xchg dword [0x18009b600], ebx
mov eax, dword [rsp + 0x78]
xchg dword [0x18009b608], eax
jmp 0x1800100be
lea rbp, [0x18009af78]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, rdi
call fcn.180004944
mov rsi, rax
cmp rax, rbx
je 0x180010010
cmp dword [rax + 0x16c], ebx
je 0x180010010
mov rcx, qword [0x18009b458]
mov rdx, rdi
call qword [sym.imp.USER32.dll_KillTimer]
mov rcx, rdi
mov dword [rsi + 0x16c], ebx
call qword [0x180099c60]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x1800100be
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [0x18009b664], ebx
jne 0x1800100be
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, rdi
call fcn.1800041bc
mov rcx, rbp
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp rsi, rbx
jne 0x180010059
mov rcx, qword [0x18009b458]
mov rdx, rdi
call qword [sym.imp.USER32.dll_KillTimer]
jmp 0x1800100be
mov eax, dword [rsi + 0x104]
shl eax, 0xa
mov dword [rsi + 0x108], eax
mov eax, dword [rsi + 0xd4]
test al, 4
je 0x18001007f
mov r8, qword [rsi]
add eax, 0xfffffffc
mov edx, 0x401
jmp 0x18001008f
test al, 8
je 0x1800100a8
mov r8, qword [rsi + 8]
add eax, 0xfffffff8
mov edx, 0x402
mov dword [rsi + 0xd4], eax
mov rcx, qword [0x18009b458]
mov r9d, 2
call qword [sym.imp.USER32.dll_PostMessageA]
mov rcx, qword [0x18009b458]
mov rdx, rdi
call qword [sym.imp.USER32.dll_KillTimer]
xchg dword [rsi + 0x100], ebx
add rsp, 0x38
pop rdi
pop rsi
pop rbp
pop rbx
ret