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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
mov rbp, rsp
sub rsp, 0x50
xor r14d, r14d
cmp dword [0x180035914], r14d
je 0x180022be2
movzx eax, word [0x1800358fc]
jmp 0x180022e65
lea rcx, [0x180035938]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x1800358c8]
mov edi, dword [0x1800358fc]
mov dword [0x180035914], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x1800358c0]
btr eax, 0x1f
cmp eax, 0xc8
ja 0x180022c3b
cmp dword [0x180035914], r14d
je 0x180022c33
lea rcx, [0x180035938]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movzx eax, di
jmp 0x180022e5e
lea rcx, [rbp - 0x18]
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
lea r8, [rbp + 0x40]
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0x38]
test rbx, rbx
jne 0x180022cf7
call fcn.180022ac8
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea r9, [rbp + 0x48]
lea rax, [rbp - 0x20]
lea r8, [rbp - 0x10]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 8]
call qword [sym.imp.KERNEL32.dll_GetProcessTimes]
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x20]
mov qword [0x1800358c8], rax
mov rax, qword [rbp + 0x38]
mov qword [0x1800358d0], rax
mov rax, qword [rbp + 0x30]
mov qword [0x1800358d8], rax
mov rax, qword [rbp + 0x40]
mov qword [0x1800358e0], rax
mov rax, qword [rbp + 0x48]
mov qword [0x1800358e8], rax
mov qword [0x1800358f0], rcx
mov dword [0x1800358fc], r14d
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x180035914], r14d
mov dword [0x1800358c0], eax
je 0x180022cee
lea rcx, [0x180035938]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movzx eax, r14w
jmp 0x180022e5e
mov rdi, qword [rbp - 0x18]
sub rdi, rbx
call fcn.180022ac8
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea r9, [rbp + 0x48]
lea rax, [rbp - 0x20]
lea r8, [rbp - 0x10]
mov qword [rsp + 0x20], rax
lea rdx, [rbp - 8]
call qword [sym.imp.KERNEL32.dll_GetProcessTimes]
mov rbx, qword [rbp + 0x30]
mov rsi, qword [rbp + 0x40]
mov rcx, rbx
sub rcx, qword [0x1800358e0]
sub rcx, qword [0x1800358d8]
mov r11, qword [rbp + 0x38]
add rcx, rsi
je 0x180022d64
mov rax, qword [0x1800358d0]
sub rax, r11
add rax, rcx
imul rax, rax, 0x64
cqo
idiv rcx
mov r10, rax
jmp 0x180022d67
mov r10d, r14d
mov r9, qword [rbp + 0x48]
mov r8, qword [rbp - 0x20]
mov rax, r9
sub rax, qword [0x1800358f0]
sub rax, qword [0x1800358e8]
mov rcx, qword [rbp - 0x18]
add rax, r8
imul rax, rax, 0x64
mov qword [0x1800358f0], r8
movsxd r8, dword [0x1800358f8]
cqo
idiv rdi
lea rdx, [0x180035900]
mov qword [0x1800358e8], r9
mov dword [rdx + r8*4], r10d
lea r9, [0x180035918]
mov dword [r9 + r8*4], eax
inc r8d
mov eax, 0x99999999
mov qword [0x1800358c8], rcx
imul r8d
mov qword [0x1800358d0], r11
sar edx, 1
mov eax, edx
mov qword [0x1800358d8], rbx
shr eax, 0x1f
add edx, eax
mov qword [0x1800358e0], rsi
lea eax, [r8 + rdx]
mov r8d, dword [0x1800358c4]
lea eax, [rax + rdx*4]
inc r8d
mov dword [0x1800358f8], eax
mov eax, 5
cmp r8d, eax
cmovg r8d, eax
mov eax, r14d
mov dword [0x1800358c4], r8d
test r8d, r8d
jle 0x180022e2d
mov ecx, r8d
add eax, dword [r9]
lea r9, [r9 + 4]
sub rcx, 1
jne 0x180022e20
cdq
idiv r8d
mov ebx, eax
mov dword [0x1800358fc], eax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x180035914], r14d
mov dword [0x1800358c0], eax
je 0x180022e5b
lea rcx, [0x180035938]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movzx eax, bx
mov dword [0x180035914], r14d
add rsp, 0x50
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret