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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov rax, qword [0x1801af118]
xor rax, rsp
mov qword [rsp + 0x20], rax
cmp byte [rcx + 0x55], 0
mov rdi, rcx
je 0x1800cfade
cmp byte [rcx + 0x8d], 0
je 0x1800cfade
xor r8d, r8d
movabs rbx, 0xfe99b66d079cf6bc
mov r9b, 1
mov rcx, rbx
lea edx, [r8 + 2]
call fcn.1800671c0
mov edx, 2
mov r9b, 1
mov rcx, rbx
lea r8d, [rdx + 0x11]
call fcn.1800671c0
mov r9b, 1
mov edx, 2
mov r8d, Ordinal_143
mov rcx, rbx
call fcn.1800671c0
mov edx, 2
mov r9b, 1
mov rcx, rbx
lea r8d, [rdx + 0x12]
call fcn.1800671c0
mov edx, 2
mov r9b, 1
mov rcx, rbx
lea r8d, [rdx + 0x19]
call fcn.1800671c0
mov edx, 2
mov r9b, 1
mov rcx, rbx
lea r8d, [rdx + 0x4e]
call fcn.1800671c0
mov r9b, 1
mov edx, 2
mov r8d, 0x151
mov rcx, rbx
call fcn.1800671c0
mov edx, 2
mov r9b, 1
mov rcx, rbx
lea r8d, [rdx + 0x19]
call fcn.1800671c0
mov edx, 2
mov r9b, 1
mov rcx, rbx
lea r8d, [rdx + 0x53]
call fcn.1800671c0
mov edx, 2
mov r9b, 1
mov rcx, rbx
lea r8d, [rdx + 0x48]
call fcn.1800671c0
mov rax, qword gs:[0x58]
mov ecx, dword [0x18020938c]
mov edx, 4
mov r14, qword [rax + rcx*8]
add r14, rdx
mov eax, dword [r14]
cmp dword [0x18023fb88], eax
jle 0x1800cfb31
lea rcx, [0x18023fb88]
call fcn.180127a48
cmp dword [0x18023fb88], 0xffffffff
jne 0x1800cfb31
call qword [sym.imp.KERNEL32.dll_GetTickCount]
lea rcx, [0x18023fb88]
mov dword [0x18023fb8c], eax
call fcn.1801279e8
cmp byte [rdi + 0x2b2], 0
lea rbp, str.SELECT
movabs r15, 0xe2587f8cbbd87b1d
je 0x1800cfb5f
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x18023fb8c]
cmp eax, dword [rdi + 0x8f]
jae 0x1800cfba4
xor edx, edx
mov r8d, 0xe3
mov rcx, r15
call fcn.180065a50
test eax, eax
je 0x1800cfbd4
xor edx, edx
mov r8d, 0xaf
mov rcx, r15
call fcn.180065a50
test eax, eax
je 0x1800cfbd4
cmp byte [rdi + 0x8d], 0
je 0x1800cfbd4
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x18023fb8c]
cmp eax, dword [rdi + 0x8f]
jb 0x1800cfbd4
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x18023fb8c], eax
movzx eax, byte [rdi + 0x55]
xor al, 1
cmp byte [rdi + 0x8c], 0
mov byte [rdi + 0x55], al
je 0x1800cfbd4
test al, al
lea rdx, str.BACK
cmovne rdx, rbp
call fcn.1800d5670
mov eax, dword [r14]
xor r12d, r12d
cmp dword [0x18023fb90], eax
jle 0x1800cfc4d
lea rcx, [0x18023fb90]
call fcn.180127a48
cmp dword [0x18023fb90], 0xffffffff
jne 0x1800cfc4d
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800cfc15
imul rax, rax, 0x64
jmp 0x1800cfc33
cqo
idiv rbx
mov r8, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rdx, r8, 0x3b9aca00
add rax, rdx
lea rcx, [0x18023fb90]
mov qword [0x18023fb98], rax
mov qword [0x18023fba0], r12
call fcn.1801279e8
movsxd rax, dword [rdi + 0x93]
imul rcx, rax, 0xf4240
mov qword [0x18023fba0], rcx
cmp byte [rdi + 0x55], r12b
je 0x1800d0666
cmp byte [rdi + 0x2b3], r12b
je 0x1800cfcc4
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800cfc93
imul rax, rax, 0x64
jmp 0x1800cfcb1
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
sub rcx, qword [0x18023fb98]
cmp rcx, qword [0x18023fba0]
jge 0x1800cfd42
cmp byte [rdi + 0x55], r12b
je 0x1800d0666
xor edx, edx
mov r8d, 0xca
mov rcx, r15
call fcn.180065a50
test eax, eax
je 0x1800cfd84
cmp byte [rdi + 0x8d], r12b
je 0x1800cfd84
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800cfd11
imul rax, rax, 0x64
jmp 0x1800cfd2f
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
sub rcx, qword [0x18023fb98]
cmp rcx, qword [0x18023fba0]
jl 0x1800cfd84
mov qword [0x18023fb98], rax
cmp byte [rdi + 0x8c], r12b
je 0x1800cfd5e
lea rdx, str.BACK
call fcn.1800d5670
mov rax, qword [rdi + 0x2a2]
sub rax, qword [rdi + 0x29a]
sar rax, 3
cmp rax, 1
ja 0x1800cfd7c
mov byte [rdi + 0x55], r12b
jmp 0x1800cfd84
add qword [rdi + 0x2a2], 0xfffffffffffffff8
cmp byte [rdi + 0x55], r12b
je 0x1800d0666
mov rax, qword [rdi + 0x2a2]
cmp qword [rdi + 0x29a], rax
je 0x1800d0666
mov qword [rsp + 0x68], rsi
mov rsi, qword [rax - 8]
mov eax, dword [r14]
cmp dword [0x18023fba8], eax
jle 0x1800cfe21
lea rcx, [0x18023fba8]
call fcn.180127a48
cmp dword [0x18023fba8], 0xffffffff
jne 0x1800cfe21
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800cfde9
imul rax, rax, 0x64
jmp 0x1800cfe07
cqo
idiv rbx
mov r8, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rdx, r8, 0x3b9aca00
add rax, rdx
lea rcx, [0x18023fba8]
mov qword [0x18023fbb0], rax
mov qword [0x18023fbb8], r12
call fcn.1801279e8
movsxd rax, dword [rdi + 0x97]
imul rcx, rax, 0xf4240
mov qword [0x18023fbb8], rcx
cmp byte [rdi + 0x2b4], r12b
je 0x1800cfea0
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + Ordinal_50]
test rax, rax
je 0x1800cfea0
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800cfe6b
imul rax, rax, 0x64
jmp 0x1800cfe89
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
sub rcx, qword [0x18023fbb0]
cmp rcx, qword [0x18023fbb8]
jge 0x1800cff26
xor edx, edx
mov r8d, 0xc9
mov rcx, r15
call fcn.180065a50
test eax, eax
je 0x1800cff64
cmp byte [rdi + 0x8d], r12b
je 0x1800cff64
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + Ordinal_50]
test rax, rax
je 0x1800cff64
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800cfef5
imul rax, rax, 0x64
jmp 0x1800cff13
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
sub rcx, qword [0x18023fbb0]
cmp rcx, qword [0x18023fbb8]
jl 0x1800cff64
mov qword [0x18023fbb0], rax
cmp byte [rdi + 0x8c], r12b
je 0x1800cff3e
mov rdx, rbp
call fcn.1800d5670
mov rbx, qword [rsi]
mov rcx, rsi
call qword [rbx + gethostname]
mov rdx, rax
mov rcx, rsi
call qword [rbx + Ordinal_41]
test rax, rax
je 0x1800cff64
mov r8, qword [rax]
mov edx, 2
mov rcx, rax
call qword [r8 + Ordinal_41]
mov eax, dword [r14]
cmp dword [0x18023fbc0], eax
jle 0x1800cffda
lea rcx, [0x18023fbc0]
call fcn.180127a48
cmp dword [0x18023fbc0], 0xffffffff
jne 0x1800cffda
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800cffa2
imul rax, rax, 0x64
jmp 0x1800cffc0
cqo
idiv rbx
mov r8, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rdx, r8, 0x3b9aca00
add rax, rdx
lea rcx, [0x18023fbc0]
mov qword [0x18023fbc8], rax
mov qword [0x18023fbd0], r12
call fcn.1801279e8
movsxd rax, dword [rdi + 0x9b]
imul rcx, rax, 0xf4240
mov qword [0x18023fbd0], rcx
cmp byte [rdi + 0x2b5], r12b
je 0x1800d0059
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + Ordinal_50]
test rax, rax
je 0x1800d0059
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800d0024
imul rax, rax, 0x64
jmp 0x1800d0042
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
sub rcx, qword [0x18023fbc8]
cmp rcx, qword [0x18023fbd0]
jge 0x1800d00df
xor edx, edx
mov r8d, 0xbc
mov rcx, r15
call fcn.180065a50
test eax, eax
je 0x1800d0121
cmp byte [rdi + 0x8d], r12b
je 0x1800d0121
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + Ordinal_50]
test rax, rax
je 0x1800d0121
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800d00ae
imul rax, rax, 0x64
jmp 0x1800d00cc
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
sub rcx, qword [0x18023fbc8]
cmp rcx, qword [0x18023fbd0]
jl 0x1800d0121
mov qword [0x18023fbc8], rax
cmp byte [rdi + 0x8c], r12b
je 0x1800d00fb
lea rdx, str.NAV_UP_DOWN
call fcn.1800d5670
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + gethostname]
mov rbx, qword [rsi]
mov rcx, rsi
test rax, rax
je 0x1800d0114
call qword [rbx + gethostname]
jmp 0x1800d0117
call qword [rbx + Ordinal_50]
lea rdx, [rax - 1]
mov rcx, rsi
call qword [rbx + 0x40]
mov eax, dword [r14]
cmp dword [0x18023fbd8], eax
jle 0x1800d0197
lea rcx, [0x18023fbd8]
call fcn.180127a48
cmp dword [0x18023fbd8], 0xffffffff
jne 0x1800d0197
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800d015f
imul rax, rax, 0x64
jmp 0x1800d017d
cqo
idiv rbx
mov r8, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rdx, r8, 0x3b9aca00
add rax, rdx
lea rcx, [0x18023fbd8]
mov qword [0x18023fbe0], rax
mov qword [0x18023fbe8], r12
call fcn.1801279e8
movsxd rax, dword [rdi + 0x9b]
imul rcx, rax, 0xf4240
mov qword [0x18023fbe8], rcx
cmp byte [rdi + 0x2b6], r12b
je 0x1800d0216
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + Ordinal_50]
test rax, rax
je 0x1800d0216
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800d01e1
imul rax, rax, 0x64
jmp 0x1800d01ff
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
sub rcx, qword [0x18023fbe0]
cmp rcx, qword [0x18023fbe8]
jge 0x1800d029c
xor edx, edx
mov r8d, 0xbb
mov rcx, r15
call fcn.180065a50
test eax, eax
je 0x1800d02ea
cmp byte [rdi + 0x8d], r12b
je 0x1800d02ea
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + Ordinal_50]
test rax, rax
je 0x1800d02ea
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800d026b
imul rax, rax, 0x64
jmp 0x1800d0289
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
sub rcx, qword [0x18023fbe0]
cmp rcx, qword [0x18023fbe8]
jl 0x1800d02ea
mov qword [0x18023fbe0], rax
cmp byte [rdi + 0x8c], r12b
je 0x1800d02b8
lea rdx, str.NAV_UP_DOWN
call fcn.1800d5670
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + Ordinal_50]
mov rdx, qword [rsi]
mov rcx, rsi
lea rbx, [rax - 1]
call qword [rdx + gethostname]
mov rbp, qword [rsi]
mov rcx, rsi
cmp rax, rbx
jae 0x1800d02e5
call qword [rbp + gethostname]
mov rcx, rsi
lea rdx, [rax + 1]
jmp 0x1800d02e7
xor edx, edx
call qword [rbp + 0x40]
mov eax, dword [r14]
cmp dword [0x18023fbf0], eax
jle 0x1800d0360
lea rcx, [0x18023fbf0]
call fcn.180127a48
cmp dword [0x18023fbf0], 0xffffffff
jne 0x1800d0360
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800d0328
imul rax, rax, 0x64
jmp 0x1800d0346
cqo
idiv rbx
mov r8, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rdx, r8, 0x3b9aca00
add rax, rdx
lea rcx, [0x18023fbf0]
mov qword [0x18023fbf8], rax
mov qword [0x18023fc00], r12
call fcn.1801279e8
movsxd rax, dword [rdi + 0x9f]
imul rcx, rax, 0xf4240
mov qword [0x18023fc00], rcx
cmp byte [rdi + 0x2b7], r12b
je 0x1800d03df
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + Ordinal_50]
test rax, rax
je 0x1800d03df
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800d03aa
imul rax, rax, 0x64
jmp 0x1800d03c8
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
sub rcx, qword [0x18023fbf8]
cmp rcx, qword [0x18023fc00]
jge 0x1800d0465
xor edx, edx
mov r8d, 0xae
mov rcx, r15
call fcn.180065a50
test eax, eax
je 0x1800d04a4
cmp byte [rdi + 0x8d], r12b
je 0x1800d04a4
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + Ordinal_50]
test rax, rax
je 0x1800d04a4
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800d0434
imul rax, rax, 0x64
jmp 0x1800d0452
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
sub rcx, qword [0x18023fbf8]
cmp rcx, qword [0x18023fc00]
jl 0x1800d04a4
mov qword [0x18023fbf8], rax
cmp byte [rdi + 0x8c], r12b
je 0x1800d0481
lea rdx, str.NAV_LEFT_RIGHT
call fcn.1800d5670
mov rbx, qword [rsi]
mov rcx, rsi
call qword [rbx + gethostname]
mov rdx, rax
mov rcx, rsi
call qword [rbx + Ordinal_41]
test rax, rax
je 0x1800d04a4
mov r8, qword [rax]
xor edx, edx
mov rcx, rax
call qword [r8 + Ordinal_41]
mov eax, dword [r14]
cmp dword [0x18023fc08], eax
jle 0x1800d051a
lea rcx, [0x18023fc08]
call fcn.180127a48
cmp dword [0x18023fc08], 0xffffffff
jne 0x1800d051a
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800d04e2
imul rax, rax, 0x64
jmp 0x1800d0500
cqo
idiv rbx
mov r8, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
imul rdx, r8, 0x3b9aca00
add rax, rdx
lea rcx, [0x18023fc08]
mov qword [0x18023fc10], rax
mov qword [0x18023fc18], r12
call fcn.1801279e8
movsxd rax, dword [rdi + 0x9f]
imul rcx, rax, 0xf4240
mov qword [0x18023fc18], rcx
cmp byte [rdi + 0x2b8], r12b
je 0x1800d0599
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + Ordinal_50]
test rax, rax
je 0x1800d0599
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800d0564
imul rax, rax, 0x64
jmp 0x1800d0582
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
sub rcx, qword [0x18023fc10]
cmp rcx, qword [0x18023fc18]
jge 0x1800d061f
xor edx, edx
mov r8d, 0xaf
mov rcx, r15
call fcn.180065a50
test eax, eax
je 0x1800d0661
cmp byte [rdi + 0x8d], r12b
je 0x1800d0661
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + Ordinal_50]
test rax, rax
je 0x1800d0661
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x1800d05ee
imul rax, rax, 0x64
jmp 0x1800d060c
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
mov rcx, rax
sub rcx, qword [0x18023fc10]
cmp rcx, qword [0x18023fc18]
jl 0x1800d0661
mov qword [0x18023fc10], rax
cmp byte [rdi + 0x8c], r12b
je 0x1800d063b
lea rdx, str.NAV_LEFT_RIGHT
call fcn.1800d5670
mov rbx, qword [rsi]
mov rcx, rsi
call qword [rbx + gethostname]
mov rdx, rax
mov rcx, rsi
call qword [rbx + Ordinal_41]
test rax, rax
je 0x1800d0661
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8 + Ordinal_41]
mov rsi, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x20]
xor rcx, rsp
call fcn.1801274b0
mov rbx, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret