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

Disassembly:
push rbp
push rsi
push rbx
sub rsp, 0xa0
mov rbp, rsp
mov qword [rbp + 0x38], rcx
mov qword [rbp + 0x30], r8
mov dword [rbp + 0x44], r9d
mov qword [rbp + 0x48], 0
mov qword [rbp + 0x50], 0
mov qword [rbp + 0x58], 0
mov qword [rbp + 0x60], 0
mov qword [rbp + 0x68], 0
mov qword [rbp + 0x70], 0
mov qword [rbp + 0x78], 0
mov qword [rbp + 0x80], 0
mov qword [rbp + 0x88], 0
mov qword [rbp + 0x90], 0
mov qword [rbp + 0x98], 0
mov qword [rbp + 0xc8], rdx
mov rcx, qword [rbp + 0xc8]
call fcn.0040e240
nop
mov rax, qword [rbp + 0x30]
movzx rax, byte [rax]
sub al, 1
cmp al, 0xff
je 0x6890e9
test al, al
je 0x6897b9
sub al, 1
test al, al
jne 0x68996c
jmp 0x689896
lea rcx, [0x006899ec]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x6891a8
mov rax, qword [rbp + 0x38]
cmp byte [rax + 0xd], 0
je 0x68996d
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov ebx, eax
mov rcx, qword [0x009b4ca0]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov esi, eax
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
lea rcx, [rbp + 0x98]
mov rdx, qword [rbp + 0xc8]
mov r8d, ebx
add r8d, 1
mov r9d, esi
sub r9d, eax
sub r9d, 1
call fcn.0040f370
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
lea rdx, [0x00689a00]
mov r8, qword [rbp + 0x98]
call fcn.0040ef90
mov rax, qword [rbp + 0x30]
mov byte [rax], 1
call sub.kernel32.dll_GetTickCount_1
add eax, 0xea60
mov rcx, qword [rbp + 0x30]
mov dword [rcx + 4], eax
lea rcx, [0x00689a14]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x689280
mov rax, qword [rbp + 0x38]
cmp byte [rax + 0xd], 0
je 0x68996d
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov ebx, eax
mov rcx, qword [0x009b4ca0]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov esi, eax
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
lea rcx, [rbp + 0x90]
mov rdx, qword [rbp + 0xc8]
mov r8d, ebx
add r8d, 1
mov r9d, esi
sub r9d, eax
sub r9d, 1
call fcn.0040f370
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
lea rdx, [0x00689a28]
mov r8, qword [rbp + 0x90]
call fcn.0040ef90
mov rcx, qword [rbp + 0x38]
mov dl, 0x53
mov r8d, dword [rbp + 0x44]
mov rax, qword [rbp + 0x30]
mov r9, qword [rax + 8]
call fcn.00685de0
mov rax, qword [rbp + 0x30]
mov byte [rax], 0
lea rcx, [rax + 8]
call fcn.0040e0d0
mov rax, qword [rbp + 0x30]
mov dword [rax + 4], 0
lea rcx, [0x00689a3c]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x689358
mov rax, qword [rbp + 0x38]
cmp byte [rax + 0xd], 0
je 0x68996d
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov ebx, eax
mov rcx, qword [0x009b4ca0]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov esi, eax
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
lea rcx, [rbp + 0x88]
mov rdx, qword [rbp + 0xc8]
mov r8d, ebx
add r8d, 1
mov r9d, esi
sub r9d, eax
sub r9d, 1
call fcn.0040f370
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
lea rdx, [0x00689a50]
mov r8, qword [rbp + 0x88]
call fcn.0040ef90
mov rcx, qword [rbp + 0x38]
mov dl, 0x53
mov r8d, dword [rbp + 0x44]
mov rax, qword [rbp + 0x30]
mov r9, qword [rax + 8]
call fcn.00685de0
mov rax, qword [rbp + 0x30]
mov byte [rax], 0
lea rcx, [rax + 8]
call fcn.0040e0d0
mov rax, qword [rbp + 0x30]
mov dword [rax + 4], 0
lea rcx, [0x00689a64]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x689417
mov rax, qword [rbp + 0x38]
cmp byte [rax + 0xd], 0
je 0x68996d
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov ebx, eax
mov rcx, qword [0x009b4ca0]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov esi, eax
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
lea rcx, [rbp + 0x80]
mov rdx, qword [rbp + 0xc8]
mov r8d, ebx
add r8d, 1
mov r9d, esi
sub r9d, eax
sub r9d, 1
call fcn.0040f370
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
lea rdx, [0x00689a78]
mov r8, qword [rbp + 0x80]
call fcn.0040ef90
mov rax, qword [rbp + 0x30]
mov byte [rax], 1
call sub.kernel32.dll_GetTickCount_1
add eax, 0xea60
mov rcx, qword [rbp + 0x30]
mov dword [rcx + 4], eax
lea rcx, [0x00689a8c]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x6894d0
mov rax, qword [rbp + 0x38]
cmp byte [rax + 0xd], 0
je 0x68996d
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov ebx, eax
mov rcx, qword [0x009b4ca0]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov esi, eax
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
lea rcx, [rbp + 0x78]
mov rdx, qword [rbp + 0xc8]
mov r8d, ebx
add r8d, 1
mov r9d, esi
sub r9d, eax
sub r9d, 1
call fcn.0040f370
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
lea rdx, [0x00689a9c]
mov r8, qword [rbp + 0x78]
call fcn.0040ef90
mov rax, qword [rbp + 0x30]
mov byte [rax], 1
call sub.kernel32.dll_GetTickCount_1
add eax, 0xea60
mov rcx, qword [rbp + 0x30]
mov dword [rcx + 4], eax
lea rcx, [0x00689ab0]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x689589
mov rax, qword [rbp + 0x38]
cmp byte [rax + 0xd], 0
je 0x68996d
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov ebx, eax
mov rcx, qword [0x009b4ca0]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov esi, eax
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
lea rcx, [rbp + 0x70]
mov rdx, qword [rbp + 0xc8]
mov r8d, ebx
add r8d, 1
mov r9d, esi
sub r9d, eax
sub r9d, 1
call fcn.0040f370
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
lea rdx, [0x00689ac0]
mov r8, qword [rbp + 0x70]
call fcn.0040ef90
mov rax, qword [rbp + 0x30]
mov byte [rax], 1
call sub.kernel32.dll_GetTickCount_1
add eax, 0xea60
mov rcx, qword [rbp + 0x30]
mov dword [rcx + 4], eax
lea rcx, [0x00689ad4]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x689642
mov rax, qword [rbp + 0x38]
cmp byte [rax + 0xd], 0
je 0x68996d
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov ebx, eax
mov rcx, qword [0x009b4ca0]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov esi, eax
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
lea rcx, [rbp + 0x68]
mov rdx, qword [rbp + 0xc8]
mov r8d, ebx
add r8d, 1
mov r9d, esi
sub r9d, eax
sub r9d, 1
call fcn.0040f370
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
lea rdx, [0x00689ae4]
mov r8, qword [rbp + 0x68]
call fcn.0040ef90
mov rax, qword [rbp + 0x30]
mov byte [rax], 1
call sub.kernel32.dll_GetTickCount_1
add eax, 0xea60
mov rcx, qword [rbp + 0x30]
mov dword [rcx + 4], eax
lea rcx, [0x00689af8]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x6896fb
mov rax, qword [rbp + 0x38]
cmp byte [rax + 0xd], 0
je 0x68996d
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov ebx, eax
mov rcx, qword [0x009b4ca0]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov esi, eax
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
lea rcx, [rbp + 0x60]
mov rdx, qword [rbp + 0xc8]
mov r8d, ebx
add r8d, 1
mov r9d, esi
sub r9d, eax
sub r9d, 1
call fcn.0040f370
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
lea rdx, [0x00689b0c]
mov r8, qword [rbp + 0x60]
call fcn.0040ef90
mov rax, qword [rbp + 0x30]
mov byte [rax], 1
call sub.kernel32.dll_GetTickCount_1
add eax, 0xea60
mov rcx, qword [rbp + 0x30]
mov dword [rcx + 4], eax
lea rcx, [0x00689b20]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x68996c
mov rax, qword [rbp + 0x38]
cmp byte [rax + 0xc], 0
je 0x68996d
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov ebx, eax
mov rcx, qword [0x009b4ca0]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov esi, eax
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
lea rcx, [rbp + 0x58]
mov rdx, qword [rbp + 0xc8]
mov r8d, ebx
add r8d, 1
mov r9d, esi
sub r9d, eax
sub r9d, 1
call fcn.0040f370
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
mov rdx, qword [rbp + 0x58]
mov r8, qword [0x009b4cb0]
call fcn.0040ef90
mov rax, qword [rbp + 0x30]
mov byte [rax], 2
call sub.kernel32.dll_GetTickCount_1
add eax, 0xea60
mov rcx, qword [rbp + 0x30]
mov dword [rcx + 4], eax
jmp 0x68996c
lea rcx, [0x00689b34]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x68996c
mov rax, qword [rbp + 0x38]
cmp byte [rax + 0xd], 0
je 0x68996d
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov ebx, eax
mov rcx, qword [0x009b4ca0]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov esi, eax
mov rcx, qword [0x009b4c98]
lea rcx, [0x00689b5c]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x68996c
mov rax, qword [rbp + 0x38]
cmp byte [rax + 0xc], 0
je 0x68996d
mov rax, qword [rbp + 0x38]
cmp word [rax + 0x3000a0], 0
jne 0x6898e4
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
mov rdx, qword [0x009b4cc0]
call fcn.0040eea0
jmp 0x689953
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov ebx, eax
mov rcx, qword [0x009b4ca0]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
mov esi, eax
mov rcx, qword [0x009b4c98]
mov rdx, qword [rbp + 0xc8]
call fcn.00410a70
lea rcx, [rbp + 0x48]
mov rdx, qword [rbp + 0xc8]
mov r8d, ebx
add r8d, 1
mov r9d, esi
sub r9d, eax
sub r9d, 1
call fcn.0040f370
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
mov rdx, qword [rbp + 0x48]
call fcn.0040eea0
mov rax, qword [rbp + 0x30]
mov byte [rax], 2
call sub.kernel32.dll_GetTickCount_1
add eax, 0xea60
mov rcx, qword [rbp + 0x30]
mov dword [rcx + 4], eax