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

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov rbp, rdx
mov r14, rcx
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r8d, dword [rbp]
mov r12d, eax
mov dword [rsp + 0x80], eax
add r8d, 0x12c
cmp r8d, eax
jae 0x180028710
lea r13, [rbp + 8]
mov rsi, qword [r13]
cmp rsi, r13
je 0x180028599
mov rbx, rsi
mov rsi, qword [rsi]
xor r12d, r12d
xor r14d, r14d
cmp dword [rbx + 0x98], r12d
jbe 0x18002857e
lea r15, [rbx + 0xa8]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rbp, [rbx + 0xf8]
mov rdi, qword [rbp]
cmp rdi, rbp
je 0x180028554
cmp byte [rdi + 0x14], 0
je 0x180028453
test r12d, r12d
je 0x180028425
mov ecx, dword [rdi + 0x10]
lea eax, [r12 + 1]
cmp eax, ecx
je 0x180028425
sub ecx, r12d
lea r14d, [r14 + rcx - 1]
mov r12d, dword [rdi + 0x10]
movzx r15d, byte [rdi + 0x14]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [rbx + 0xd8]
imul edx, r15d
add edx, dword [rdi + 0x18]
cmp edx, eax
jb 0x1800284b0
cmp r15b, 1
ja 0x180028453
mov rdi, qword [rdi]
cmp rdi, rbp
jne 0x180028406
mov eax, 3
cmp r14d, eax
jb 0x18002854d
mov r8, qword [rbp]
cmp r8, rbp
je 0x18002854d
cmp byte [r8 + 0x14], 1
mov r14, qword [rsp + 0x70]
jne 0x1800284a4
mov ecx, dword [rbx + 0xdc]
mov eax, dword [rbx + 0x98]
mov rdx, rbx
shr ecx, 1
cmp eax, ecx
cmova ecx, eax
mov dword [rbx + 0xdc], ecx
mov dword [rbx + 0xe4], ecx
mov rcx, r14
call fcn.1800268c4
lea r15, [rbx + 0xa8]
jmp 0x180028559
mov r9d, dword [rbx + 0xdc]
mov r10d, dword [rbx + 0x98]
movzx r8d, byte [rdi + 0x14]
xor edx, edx
mov eax, r9d
mov ebp, 3
div r10d
cmp eax, ebp
cmovb eax, ebp
cmp r8d, eax
jbe 0x180028513
lea rcx, [rbx + 0xa8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r14, qword [rsp + 0x70]
sub eax, dword [rdi + 0x18]
cmp eax, 0x2710
jbe 0x180028583
mov r8d, 0x274c
mov rdx, rbx
mov rcx, r14
call fcn.1800275e8
jmp 0x180028583
mov r14, qword [rsp + 0x70]
shr r9d, 1
mov r8, rdi
cmp r10d, r9d
mov rdx, rbx
mov rcx, r14
cmova r9d, r10d
mov dword [rbx + 0xdc], r10d
mov dword [rbx + 0xe4], r9d
call fcn.1800268c4
lea rcx, [rbx + 0xa8]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x180028583
lea r15, [rbx + 0xa8]
mov r14, qword [rsp + 0x70]
cmp dword [rbx + 0xe0], 0
jne 0x180028579
cmp dword [rbx + 0xf0], 0
je 0x180028579
xor r8d, r8d
mov rdx, rbx
mov rcx, r14
call fcn.1800268c4
mov rcx, r15
jmp 0x180028545
mov r14, qword [rsp + 0x70]
cmp rsi, r13
jne 0x1800283c9
mov rbp, qword [rsp + 0x78]
mov r12d, dword [rsp + 0x80]
lea rdi, [rbp + 0x28]
mov r15d, 0xbb8
mov rbx, qword [rdi]
jmp 0x1800285e4
lea r8, [rbx - 0x10]
mov ecx, dword [r8 + 0x134]
test ecx, ecx
je 0x1800285e1
mov eax, r12d
sub eax, ecx
cmp eax, r15d
jbe 0x1800285e1
mov rax, qword [r8 + 0x148]
test rax, rax
je 0x1800285e1
mov rdx, qword [rax + 0x168]
test rdx, rdx
je 0x1800285e1
mov rcx, r14
call fcn.180027b94
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x1800285a8
lea rdi, [rbp + 0x18]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x18002870c
mov esi, 2
lea ebp, [rsi - 1]
lea r13d, [rsi + 0xe]
lea r9d, [rsi + 0x1a]
movzx r8d, word [rbx + 0x144]
mov edx, r12d
mov rcx, rbx
sub edx, dword [rbx + 0x140]
lea eax, [rbp + r8]
imul eax, eax, 0x2710
cmp edx, eax
jbe 0x18002868c
add r8w, bp
mov word [rbx + 0x144], r8w
cmp r8w, bp
jbe 0x18002864c
mov rbx, qword [rbx + 8]
call fcn.180027ad0
jmp 0x1800286f5
cmp dword [rbx + 0x13c], esi
jne 0x1800286fb
lea rdx, [rbx + 0x20]
cmp word [rdx], si
jne 0x180028666
mov r8d, r13d
jmp 0x180028672
or r8d, 0xffffffff
cmp word [rdx], 0x17
cmove r8d, r9d
and dword [rsp + 0x28], 0
lea r9, [rbx + 0x150]
mov rcx, r14
mov dword [rsp + 0x20], ebp
call fcn.180030b14
jmp 0x1800286f5
mov ecx, dword [rbx + 0x134]
test ecx, ecx
je 0x1800286fb
mov eax, r12d
sub eax, ecx
cmp eax, r15d
jbe 0x1800286fb
lea rdx, [rbx + 0x20]
cmp word [rdx], si
jne 0x1800286ae
mov r8d, r13d
jmp 0x1800286ba
or r8d, 0xffffffff
cmp word [rdx], 0x17
cmove r8d, r9d
and dword [rsp + 0x28], 0
lea r9, [rbx + 0x150]
mov rcx, r14
mov dword [rsp + 0x20], ebp
call fcn.180030b14
mov rdx, qword [rbx + 0x148]
test rdx, rdx
je 0x1800286f5
mov rdx, qword [rdx + 0x168]
test rdx, rdx
je 0x1800286f5
mov r8, rbx
mov rcx, r14
call fcn.180027b94
mov r9d, 0x1c
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x180028609
mov rbp, qword [rsp + 0x78]
mov dword [rbp], r12d
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret