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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
xor ebx, ebx
cmp dword [rcx + 8], 1
mov rbp, r9
mov r13, r8
movsxd r12, edx
mov rsi, rcx
mov edi, ebx
jne 0x100053de4
mov eax, 0x8007045b
jmp 0x10005420c
cmp dword [rcx + 0x90], ebx
jne 0x100053df3
xor eax, eax
jmp 0x10005420c
cmp r12d, 0x20
ja 0x100054207
call fcn.100077474
cmp eax, ebx
je 0x100054200
call fcn.100077850
cmp eax, ebx
je 0x100054200
cmp dword [rsi + 8], 1
je 0x100053dda
lea rax, [rsi + 0x40]
mov rcx, rax
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [rsi + 8], 1
jne 0x100053e47
mov edi, 0x8007045b
mov r15, qword [rsp + 0x80]
jmp 0x1000541df
cmp rbp, rbx
je 0x100053e84
mov rcx, qword [rsi + 0x88]
cmp rcx, rbx
je 0x100053e64
call fcn.10011bc94
mov qword [rsi + 0x88], rbx
cmp qword [rsi + 0x78], rbx
je 0x100053e84
mov rcx, qword [rsi + 0x70]
xor r8d, r8d
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_DeleteTimerQueueTimer]
cmp rbp, qword [rsi + 0x78]
jne 0x100053e3a
mov qword [rsi + 0x78], rbx
cmp qword [rsi + 0x10], rbx
je 0x100053e3a
lea eax, [r12 + 2]
movsxd rcx, eax
mov eax, 4
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.10011bdc8
mov r15, rax
cmp rax, rbx
jne 0x100053ebf
mov edi, 0x8007000e
jmp 0x1000541df
xor eax, eax
mov ebp, ebx
mov word [rsp + 0x80], ax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp r12d, ebx
mov r14d, eax
mov rdx, rbx
jle 0x100053f70
mov r9, r15
cmp dword [rsi + 0x38], ebx
mov ecx, ebx
mov r8, rbx
jle 0x100053f09
mov r10d, dword [r13 + rdx*4]
lea rax, [rsi + 0x18]
cmp dword [rax], r10d
je 0x100053f09
inc ecx
inc r8
add rax, 0x10
cmp ecx, dword [rsi + 0x38]
jl 0x100053ef6
cmp ecx, dword [rsi + 0x38]
jne 0x100053f18
mov eax, dword [r13 + rdx*4]
mov dword [r9], eax
jmp 0x100053f5e
mov rcx, r8
add rcx, rcx
cmp byte [rsi + rcx*8 + 0x24], 1
jne 0x100053f45
lea rax, [r8 + 2]
add rax, rax
cmp r14d, dword [rsi + rax*8]
jb 0x100053f3e
or eax, 0xffffffff
sub eax, dword [rsi + rcx*8 + 0x1c]
cmp r14d, eax
jbe 0x100053f45
mov byte [rsi + rcx*8 + 0x25], 1
jmp 0x100053f64
mov eax, dword [r13 + rdx*4]
mov byte [rsp + r8 + 0x80], 1
mov dword [r9], eax
mov byte [rsi + rcx*8 + 0x25], bl
mov byte [rsi + rcx*8 + 0x24], bl
inc ebp
add r9, 4
inc rdx
cmp rdx, r12
jl 0x100053ee3
or r12d, 0xffffffff
cmp dword [rsi + 0x38], ebx
mov r8d, ebx
movsxd rax, ebp
jle 0x100053fd3
lea rdx, [rsp + 0x80]
lea r9, [r15 + rax*4]
lea rcx, [rsi + 0x25]
cmp byte [rcx], bl
je 0x100053fc3
cmp r14d, dword [rcx - 5]
jb 0x100053fba
or eax, 0xffffffff
sub eax, dword [rcx - 9]
cmp r14d, eax
ja 0x100053fba
mov eax, dword [rcx - 0xd]
inc ebp
mov byte [rdx], 1
mov dword [r9], eax
add r9, 4
mov byte [rcx], bl
mov byte [rcx - 1], bl
jmp 0x100053fc3
cmp r12d, dword [rcx - 9]
cmova r12d, dword [rcx - 9]
inc r8d
inc rdx
add rcx, 0x10
cmp r8d, dword [rsi + 0x38]
jl 0x100053f8f
cmp dword [rsi + 8], 1
jne 0x100053fe3
mov edi, 0x8007045b
jmp 0x1000541df
cmp ebp, ebx
jle 0x100054088
mov rcx, qword [rsi + 0x10]
xor r9d, r9d
xor r8d, r8d
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + 0x28]
mov rcx, qword [rsi + 0x10]
lea r8, [rsp + 0x40]
lea rdx, [0x100001ec0]
call qword [sym.imp.ole32.dll_CoUnmarshalInterface]
cmp eax, ebx
mov edi, eax
jl 0x1000540d0
mov rcx, qword [rsp + 0x40]
mov r8, r15
mov edx, ebp
mov rax, qword [rcx]
call qword [rax + 0x18]
mov rcx, qword [rsp + 0x40]
mov edi, eax
mov rax, qword [rcx]
call qword [rax + 0x10]
cmp edi, ebx
jl 0x1000540d0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [rsi + 0x38], ebx
mov r10d, ebx
jle 0x100054085
lea r9, [rsp + 0x80]
lea r8, [rsi + 0x20]
cmp byte [r9], bl
je 0x100054075
mov ecx, dword [r8 - 4]
mov byte [r8 + 4], 1
mov byte [r8 + 5], bl
lea edx, [rax + rcx]
mov dword [r8], edx
inc r10d
inc r9
add r8, 0x10
cmp r10d, dword [rsi + 0x38]
jl 0x10005405d
mov dword [rsi + 0x68], ebx
cmp r12d, 0xffffffff
je 0x1000541df
mov rcx, qword [rsi + 0x70]
cmp rcx, 0xffffffffffffffff
je 0x1000541df
mov rdx, qword [rsi + 0x78]
cmp rdx, rbx
je 0x10005411e
lea eax, [r12 + r14]
cmp eax, dword [rsi + 0x80]
jae 0x1000540c9
xor r9d, r9d
mov r8d, r12d
call qword [sym.imp.KERNEL32.dll_ChangeTimerQueueTimer]
cmp eax, ebx
jne 0x1000541df
mov edi, ebx
jmp 0x1000541df
mov ecx, dword [rsi + 0x68]
lea eax, [rcx + 1]
mov dword [rsi + 0x68], eax
cmp ecx, 3
jae 0x100054085
cmp dword [rsi + 0x38], ebx
mov edx, ebx
jle 0x100054117
lea rcx, [rsp + 0x80]
lea rax, [rsi + 0x24]
mov r8d, 0x64
cmp byte [rcx], bl
je 0x100054109
cmp r12d, r8d
mov byte [rax + 1], 1
mov byte [rax], 1
cmova r12d, r8d
inc edx
inc rcx
add rax, 0x10
cmp edx, dword [rsi + 0x38]
jl 0x1000540f7
mov edi, ebx
jmp 0x100054088
cmp dword [rsi + 8], 1
je 0x100053fd9
mov rcx, qword [rsi + 0x88]
cmp rcx, rbx
je 0x100054140
call fcn.10011bc94
mov qword [rsi + 0x88], rbx
mov ecx, 0x10
call fcn.10011bd18
mov rbp, rax
cmp rax, rbx
je 0x100054157
mov qword [rax], rsi
jmp 0x10005415a
mov rbp, rbx
cmp rbp, rbx
je 0x100053eb5
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rdx, qword [rsi + 0x70]
mov dword [rsp + 0x30], 0x28
lea r8, [0x100054230]
lea rcx, [rbp + 8]
mov r9, rbp
mov dword [rsp + 0x28], ebx
mov r14d, eax
mov qword [rsi + 0x88], rbp
mov dword [rsp + 0x20], r12d
call qword [sym.imp.KERNEL32.dll_CreateTimerQueueTimer]
cmp eax, ebx
jne 0x1000541cd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rsi + 0x88], rbx
mov rcx, rbp
movzx edi, ax
mov qword [rbp + 8], rbx
mov qword [rbp], rbx
or edi, 0x80070000
cmp eax, ebx
cmovle edi, eax
call fcn.10011bc94
jmp 0x1000541df
mov rax, qword [rbp + 8]
mov qword [rsi + 0x78], rax
lea eax, [r14 + r12]
mov dword [rsi + 0x80], eax
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp r15, rbx
je 0x1000541f7
mov rcx, r15
call sub.msvcrt.dll_free
cmp edi, ebx
cmovge edi, ebx
mov eax, edi
jmp 0x10005420c
mov eax, 0x8000ffff
jmp 0x10005420c
mov eax, 0x80070057
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret