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

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov rbp, rsp
mov qword [rbp + 0x38], rcx
mov qword [rbp + 0x30], r8
mov rsi, r9
mov qword [rbp + 0x48], 0
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x50], 0
mov qword [rbp + 0x58], 0
mov qword [rbp + 0x60], 0
mov qword [rbp + 0x68], 0
lea rdi, [rbp + 0x7f]
movsq qword [rdi], qword [rsi]
movsq qword [rdi], qword [rsi]
movsb byte [rdi], byte [rsi]
mov qword [rbp + 0xc8], rdx
mov rcx, qword [rbp + 0xc8]
call fcn.0040e240
nop
mov rax, qword [rbp + 0x30]
movzx rax, byte [rax]
cmp rax, 3
jge 0x6878f5
sub rax, 1
cmp rax, 0xffffffffffffffff
je 0x687922
test rax, rax
je 0x68794d
sub rax, 1
test rax, rax
jne 0x687cba
jmp 0x687a00
sub rax, 3
cmp rax, 2
jb 0x687be7
sub rax, 2
test rax, rax
je 0x687c87
sub rax, 1
test rax, rax
jne 0x687cba
jmp 0x687be7
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
mov rdx, qword [rbp + 0xc8]
call fcn.0040e810
call sub.kernel32.dll_GetTickCount_1
add eax, 0xea60
mov rcx, qword [rbp + 0x30]
mov dword [rcx + 4], eax
jmp 0x687cba
lea rcx, [0x00687d3c]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x6879c4
mov rax, qword [rbp + 0x30]
mov byte [rax], 2
lea rcx, [rax + 8]
mov rdx, qword [rbp + 0xc8]
call fcn.0040e810
call sub.kernel32.dll_GetTickCount_1
add eax, 0xea60
mov rcx, qword [rbp + 0x30]
mov dword [rcx + 4], eax
mov rcx, qword [0x009b4cb8]
mov rax, qword [rbp + 0x30]
mov rdx, qword [rax + 8]
call fcn.00410a70
test eax, eax
jle 0x6879c4
mov rcx, qword [rbp + 0x38]
xor rdx, rdx
mov r8, qword [rbp + 0x30]
lea r9, [rbp + 0x7f]
mov eax, dword [rbp + 0xe0]
mov dword [rsp + 0x20], eax
call fcn.00687860
lea rcx, [0x00687d4c]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x687cba
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
jmp 0x687cba
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
mov rdx, qword [rbp + 0xc8]
call fcn.0040eea0
call sub.kernel32.dll_GetTickCount_1
add eax, 0xea60
mov rcx, qword [rbp + 0x30]
mov dword [rcx + 4], eax
mov rcx, qword [0x009b4cb8]
mov rax, qword [rbp + 0x30]
mov rdx, qword [rax + 8]
call fcn.00410a70
mov ebx, eax
test ebx, ebx
jle 0x687cba
mov rax, qword [rbp + 0x30]
mov rax, qword [rax + 8]
xor rcx, rcx
test rax, rax
je 0x687a57
mov ecx, dword [rax - 4]
mov rax, qword [rbp + 0x30]
lea rax, [rax + 8]
mov edx, ebx
mov r8d, ecx
sub r8d, ebx
sub r8d, 1
mov rcx, rax
call fcn.0040f3f0
mov ebx, 3
mov rax, qword [rbp + 0x30]
mov rax, qword [rax + 8]
xor rcx, rcx
test rax, rax
je 0x687a8c
mov ecx, dword [rax - 4]
cmp ebx, ecx
jge 0x687b26
mov rax, qword [rbp + 0x30]
mov rax, qword [rax + 8]
movsxd rcx, ebx
cmp byte [rax + rcx - 1], 0x2e
jne 0x687b1e
lea rcx, [rbp + 0x68]
mov rax, qword [rbp + 0x30]
mov rax, qword [rax + 8]
movsxd rdx, ebx
movzx rdx, byte [rax + rdx - 3]
xor r8, r8
call fcn.0040ed10
mov rcx, qword [rbp + 0x68]
mov rdx, qword [0x009b4ca0]
call fcn.0040f2f0
test eax, eax
jne 0x687b1e
lea rcx, [rbp + 0x60]
mov rax, qword [rbp + 0x30]
mov rax, qword [rax + 8]
movsxd rdx, ebx
movzx rdx, byte [rax + rdx - 2]
xor r8, r8
call fcn.0040ed10
mov rcx, qword [rbp + 0x60]
mov rdx, qword [0x009b4ca8]
call fcn.0040f2f0
test eax, eax
jne 0x687b1e
mov rax, qword [rbp + 0x30]
lea rcx, [rax + 8]
mov edx, ebx
mov r8d, 1
call fcn.0040f3f0
add ebx, 1
jmp 0x687a79
nop
mov rcx, qword [0x009b4cb0]
mov rax, qword [rbp + 0x30]
mov rdx, qword [rax + 8]
call fcn.00410a70
mov rcx, qword [rbp + 0x30]
lea rcx, [rcx + 8]
mov edx, 1
mov r8d, eax
add r8d, 1
call fcn.0040f3f0
lea rcx, [rbp + 0x58]
mov rdx, qword [0x009b4ca8]
lea r8, [0x00687d5c]
call fcn.0040ef90
mov rcx, qword [rbp + 0x58]
mov rax, qword [rbp + 0x30]
mov rdx, qword [rax + 8]
call fcn.00410a70
test eax, eax
jne 0x687bc7
lea rcx, [rbp + 0x50]
mov rdx, qword [0x009b4ca0]
lea r8, [0x00687d5c]
call fcn.0040ef90
mov rcx, qword [rbp + 0x50]
mov rax, qword [rbp + 0x30]
mov rdx, qword [rax + 8]
call fcn.00410a70
test eax, eax
jne 0x687bc7
mov rcx, qword [rbp + 0x38]
mov dl, 0x51
mov r8d, dword [rbp + 0xe0]
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
jmp 0x687cba
lea rcx, [0x00687d3c]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x687c6a
mov rcx, qword [rbp + 0x38]
lea rdx, [rbp + 0x40]
lea r8, [rbp + 0x7f]
call fcn.00685ca0
lea rcx, [rbp + 0x48]
mov edx, 3
mov r8, qword [rbp + 0x40]
lea r9, [0x00687d80]
mov rax, qword [rbp + 0x30]
mov rax, qword [rax + 8]
mov qword [rsp + 0x20], rax
call fcn.0040f220
mov rcx, qword [rbp + 0x38]
mov dl, 0x50
mov r8d, dword [rbp + 0xe0]
mov r9, qword [rbp + 0x48]
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
jmp 0x687cba
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
jmp 0x687cba
lea rcx, [0x00687d4c]
mov rdx, qword [rbp + 0xc8]
call fcn.00685220
cmp al, 1
jne 0x687cba
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
nop
lea rcx, [rbp + 0x40]
mov edx, 6
call fcn.0040e190
lea rcx, [rbp + 0xc8]
call fcn.0040e0d0
lea rsp, [rbp + 0x98]
pop rbx
pop rsi
pop rdi
pop rbp
ret