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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
or ebx, 0xffffffff
mov rdi, r9
mov ebp, r8d
mov r13, rdx
mov r12d, ecx
test r9, r9
je 0x100028d13
mov dword [r9], ebx
test ecx, ecx
je 0x100028f50
test rdx, rdx
je 0x100028f50
test r9, r9
je 0x100028f50
cmp r8d, ebx
je 0x100028d3d
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r14d, eax
jmp 0x100028d40
xor r14d, r14d
mov r9d, ebp
xor r8d, r8d
mov rdx, r13
mov ecx, r12d
mov r15d, ebp
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov r11d, eax
cmp eax, r12d
jb 0x100028f00
lea rsi, [0x10003d610]
cmp r11d, 0x80
jb 0x100028d82
lea eax, [r12 + 0x80]
cmp r11d, eax
jb 0x100028f00
cmp r11d, 0x102
je 0x100028f42
cmp r11d, ebx
jne 0x100028f49
call fcn.100027b98
mov ebx, eax
cmp eax, 0x80070008
je 0x100028dbf
cmp eax, 0x8007000e
je 0x100028dbf
cmp eax, 0x800705aa
je 0x100028dbf
cmp eax, 0x8077ffff
jne 0x100028f07
mov rcx, qword [0x10003d610]
cmp rcx, rsi
je 0x100028de9
test byte [rcx + 0x1c], 1
je 0x100028de9
mov rcx, qword [rcx + 0x10]
lea r8, [0x1000060f0]
mov edx, 0x11
mov r9d, eax
call fcn.10001550c
or dword [rdi], 0xffffffff
xor ebx, ebx
test r12d, r12d
je 0x100028e1a
mov rsi, r13
mov rcx, qword [rsi]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x100028e43
inc ebx
add rsi, 8
cmp ebx, r12d
jb 0x100028df6
lea rsi, [0x10003d610]
xor ebx, ebx
test ebx, ebx
js 0x100028f31
or ebx, 0xffffffff
cmp dword [rdi], ebx
jne 0x100028f03
cmp ebp, ebx
jne 0x100028ea9
mov ecx, 0xfa
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x100028ee2
test eax, eax
jne 0x100028e52
mov dword [rdi], ebx
lea rsi, [0x10003d610]
jmp 0x100028e24
cmp eax, 0x80
jne 0x100028e63
lea eax, [rbx + 0x80]
mov dword [rdi], eax
jmp 0x100028e49
cmp eax, 0xffffffff
jne 0x100028f35
call fcn.100027b98
mov ebx, eax
mov rcx, qword [0x10003d610]
lea rsi, [0x10003d610]
cmp rcx, rsi
je 0x100028e1c
test byte [rcx + 0x1c], 1
je 0x100028e1c
mov rcx, qword [rcx + 0x10]
lea r8, [0x1000060f0]
mov edx, 0xf
mov r9d, eax
call fcn.10001550c
jmp 0x100028e1c
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, r14d
cmp eax, ebp
jae 0x100028f42
mov ecx, ebp
sub ecx, eax
mov eax, 0xfa
cmp ecx, eax
jb 0x100028f3c
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_Sleep]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, r14d
cmp eax, ebp
jae 0x100028f42
mov r15d, ebp
sub r15d, eax
mov r9d, r15d
xor r8d, r8d
mov rdx, r13
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov r11d, eax
cmp eax, r12d
jae 0x100028d68
mov dword [rdi], r11d
xor eax, eax
jmp 0x100028f55
mov rcx, qword [0x10003d610]
cmp rcx, rsi
je 0x100028f31
test byte [rcx + 0x1c], 1
je 0x100028f31
mov rcx, qword [rcx + 0x10]
lea r8, [0x1000060f0]
mov edx, 0x10
mov r9d, eax
call fcn.10001550c
mov eax, ebx
jmp 0x100028f55
mov ebx, 0x8000ffff
jmp 0x100028f31
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, 0x80070102
jmp 0x100028f55
mov eax, 0x8000ffff
jmp 0x100028f55
mov eax, 0x80070057
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret