Function at 0x100053ce4
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 0x100053d20
mov eax, 0x8007045b
jmp 0x100054148
cmp dword [rcx + 0x90], ebx
jne 0x100053d2f
xor eax, eax
jmp 0x100054148
cmp r12d, 0x20
ja 0x100054143
call fcn.1000773d8
cmp eax, ebx
je 0x10005413c
call fcn.1000777b4
cmp eax, ebx
je 0x10005413c
cmp dword [rsi + 8], 1
je 0x100053d16
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 0x100053d83
mov edi, 0x8007045b
mov r15, qword [rsp + 0x80]
jmp 0x10005411b
cmp rbp, rbx
je 0x100053dc0
mov rcx, qword [rsi + 0x88]
cmp rcx, rbx
je 0x100053da0
call fcn.10011b7a0
mov qword [rsi + 0x88], rbx
cmp qword [rsi + 0x78], rbx
je 0x100053dc0
mov rcx, qword [rsi + 0x70]
xor r8d, r8d
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_DeleteTimerQueueTimer]
cmp rbp, qword [rsi + 0x78]
jne 0x100053d76
mov qword [rsi + 0x78], rbx
cmp qword [rsi + 0x10], rbx
je 0x100053d76
lea eax, [r12 + 2]
movsxd rcx, eax
mov eax, 4
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.10011b8d4
mov r15, rax
cmp rax, rbx
jne 0x100053dfb
mov edi, 0x8007000e
jmp 0x10005411b
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 0x100053eac
mov r9, r15
cmp dword [rsi + 0x38], ebx
mov ecx, ebx
mov r8, rbx
jle 0x100053e45
mov r10d, dword [r13 + rdx*4]
lea rax, [rsi + 0x18]
cmp dword [rax], r10d
je 0x100053e45
inc ecx
inc r8
add rax, 0x10
cmp ecx, dword [rsi + 0x38]
jl 0x100053e32
cmp ecx, dword [rsi + 0x38]
jne 0x100053e54
mov eax, dword [r13 + rdx*4]
mov dword [r9], eax
jmp 0x100053e9a
mov rcx, r8
add rcx, rcx
cmp byte [rsi + rcx*8 + 0x24], 1
jne 0x100053e81
lea rax, [r8 + 2]
add rax, rax
cmp r14d, dword [rsi + rax*8]
jb 0x100053e7a
or eax, 0xffffffff
sub eax, dword [rsi + rcx*8 + 0x1c]
cmp r14d, eax
jbe 0x100053e81
mov byte [rsi + rcx*8 + 0x25], 1
jmp 0x100053ea0
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 0x100053e1f
or r12d, 0xffffffff
cmp dword [rsi + 0x38], ebx
mov r8d, ebx
movsxd rax, ebp
jle 0x100053f0f
lea rdx, [rsp + 0x80]
lea r9, [r15 + rax*4]
lea rcx, [rsi + 0x25]
cmp byte [rcx], bl
je 0x100053eff
cmp r14d, dword [rcx - 5]
jb 0x100053ef6
or eax, 0xffffffff
sub eax, dword [rcx - 9]
cmp r14d, eax
ja 0x100053ef6
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 0x100053eff
cmp r12d, dword [rcx - 9]
cmova r12d, dword [rcx - 9]
inc r8d
inc rdx
add rcx, 0x10
cmp r8d, dword [rsi + 0x38]
jl 0x100053ecb
cmp dword [rsi + 8], 1
jne 0x100053f1f
mov edi, 0x8007045b
jmp 0x10005411b
cmp ebp, ebx
jle 0x100053fc4
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 0x10005400c
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 0x10005400c
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [rsi + 0x38], ebx
mov r10d, ebx
jle 0x100053fc1
lea r9, [rsp + 0x80]
lea r8, [rsi + 0x20]
cmp byte [r9], bl
je 0x100053fb1
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 0x100053f99
mov dword [rsi + 0x68], ebx
cmp r12d, 0xffffffff
je 0x10005411b
mov rcx, qword [rsi + 0x70]
cmp rcx, 0xffffffffffffffff
je 0x10005411b
mov rdx, qword [rsi + 0x78]
cmp rdx, rbx
je 0x10005405a
lea eax, [r12 + r14]
cmp eax, dword [rsi + 0x80]
jae 0x100054005
xor r9d, r9d
mov r8d, r12d
call qword [sym.imp.KERNEL32.dll_ChangeTimerQueueTimer]
cmp eax, ebx
jne 0x10005411b
mov edi, ebx
jmp 0x10005411b
mov ecx, dword [rsi + 0x68]
lea eax, [rcx + 1]
mov dword [rsi + 0x68], eax
cmp ecx, 3
jae 0x100053fc1
cmp dword [rsi + 0x38], ebx
mov edx, ebx
jle 0x100054053
lea rcx, [rsp + 0x80]
lea rax, [rsi + 0x24]
mov r8d, 0x64
cmp byte [rcx], bl
je 0x100054045
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 0x100054033
mov edi, ebx
jmp 0x100053fc4
cmp dword [rsi + 8], 1
je 0x100053f15
mov rcx, qword [rsi + 0x88]
cmp rcx, rbx
je 0x10005407c
call fcn.10011b7a0
mov qword [rsi + 0x88], rbx
mov ecx, 0x10
call fcn.10011b824
mov rbp, rax
cmp rax, rbx
je 0x100054093
mov qword [rax], rsi
jmp 0x100054096
mov rbp, rbx
cmp rbp, rbx
je 0x100053df1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rdx, qword [rsi + 0x70]
mov dword [rsp + 0x30], 0x28
lea r8, [0x10005416c]
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 0x100054109
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.10011b7a0
jmp 0x10005411b
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 0x100054133
mov rcx, r15
call sub.msvcrt.dll_free
cmp edi, ebx
cmovge edi, ebx
mov eax, edi
jmp 0x100054148
mov eax, 0x8000ffff
jmp 0x100054148
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