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

Disassembly:
mov qword [rsp + 0x20], rbp
push rdi
push r14
push r15
sub rsp, 0x30
mov rax, qword [0x180073010]
xor rax, rsp
mov qword [rsp + 0x20], rax
mov rax, qword gs:[0x58]
mov rdi, rcx
mov edx, dword [0x180096c28]
mov ecx, 4
mov r14, qword [rax + rdx*8]
add r14, rcx
mov eax, dword [r14]
cmp dword [0x180096db0], eax
jle 0x18004f153
lea rcx, [0x180096db0]
call fcn.180051654
cmp dword [0x180096db0], 0xffffffff
jne 0x18004f153
call qword [sym.imp.KERNEL32.dll_GetTickCount]
lea rcx, [0x180096db0]
mov dword [0x180096db4], eax
call fcn.1800515e8
cmp byte [rdi + 0x11c], 0
lea rbp, str.SELECT
je 0x18004f1a1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x180096db4]
cmp eax, dword [rdi + 0x6c]
jb 0x18004f1a1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x180096db4], eax
movzx eax, byte [rdi + 0x50]
xor al, 1
cmp byte [rdi + 0x68], 0
mov byte [rdi + 0x50], al
je 0x18004f1a1
test al, al
lea rdx, str.BACK
cmovne rdx, rbp
call fcn.18004e940
mov eax, dword [r14]
xor r15d, r15d
cmp dword [0x180096db8], eax
jle 0x18004f1e3
lea rcx, [0x180096db8]
call fcn.180051654
cmp dword [0x180096db8], 0xffffffff
jne 0x18004f1e3
lea rcx, [0x180096dc0]
call fcn.180007360
lea rcx, [0x180096db8]
mov qword [0x180096dc8], r15
call fcn.1800515e8
movsxd rax, dword [rdi + 0x70]
imul rcx, rax, 0xf4240
mov qword [rsp + 0x58], rbx
mov qword [0x180096dc8], rcx
cmp byte [rdi + 0x50], r15b
je 0x18004f7c6
cmp byte [rdi + 0x11d], r15b
je 0x18004f29f
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 0x18004f22f
imul rax, rax, 0x64
jmp 0x18004f24d
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 [0x180096dc0]
cmp rcx, qword [0x180096dc8]
jl 0x18004f29f
mov qword [0x180096dc0], rax
cmp byte [rdi + 0x68], r15b
je 0x18004f279
lea rdx, str.BACK
call fcn.18004e940
mov rax, qword [rdi + 0x148]
sub rax, qword [rdi + 0x140]
sar rax, 3
cmp rax, 1
ja 0x18004f297
mov byte [rdi + 0x50], r15b
jmp 0x18004f29f
add qword [rdi + 0x148], 0xfffffffffffffff8
cmp byte [rdi + 0x50], r15b
je 0x18004f7c6
mov rax, qword [rdi + 0x148]
cmp qword [rdi + 0x140], rax
je 0x18004f7c6
mov qword [rsp + 0x60], rsi
mov rsi, qword [rax - 8]
mov eax, dword [r14]
cmp dword [0x180096dd0], eax
jle 0x18004f305
lea rcx, [0x180096dd0]
call fcn.180051654
cmp dword [0x180096dd0], 0xffffffff
jne 0x18004f305
lea rcx, [0x180096dd8]
call fcn.180007360
lea rcx, [0x180096dd0]
mov qword [0x180096de0], r15
call fcn.1800515e8
movsxd rax, dword [rdi + 0x74]
imul rcx, rax, 0xf4240
mov qword [0x180096de0], rcx
cmp byte [rdi + 0x11e], r15b
je 0x18004f3c0
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18004f3c0
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 0x18004f354
imul rax, rax, 0x64
jmp 0x18004f372
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 [0x180096dd8]
cmp rcx, qword [0x180096de0]
jl 0x18004f3c0
mov qword [0x180096dd8], rax
cmp byte [rdi + 0x68], r15b
je 0x18004f39a
mov rdx, rbp
call fcn.18004e940
mov rbx, qword [rsi]
mov rcx, rsi
call qword [rbx + 0x38]
mov rdx, rax
mov rcx, rsi
call qword [rbx + 0x28]
test rax, rax
je 0x18004f3c0
mov r8, qword [rax]
mov edx, 2
mov rcx, rax
call qword [r8 + 0x20]
mov eax, dword [r14]
cmp dword [0x180096de8], eax
jle 0x18004f3ff
lea rcx, [0x180096de8]
call fcn.180051654
cmp dword [0x180096de8], 0xffffffff
jne 0x18004f3ff
lea rcx, [0x180096df0]
call fcn.180007360
lea rcx, [0x180096de8]
mov qword [0x180096df8], r15
call fcn.1800515e8
movsxd rax, dword [rdi + 0x78]
imul rcx, rax, 0xf4240
mov qword [0x180096df8], rcx
cmp byte [rdi + 0x11f], r15b
je 0x18004f4be
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18004f4be
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 0x18004f44e
imul rax, rax, 0x64
jmp 0x18004f46c
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 [0x180096df0]
cmp rcx, qword [0x180096df8]
jl 0x18004f4be
mov qword [0x180096df0], rax
cmp byte [rdi + 0x68], r15b
je 0x18004f498
lea rdx, str.NAV_UP_DOWN
call fcn.18004e940
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x38]
mov rbx, qword [rsi]
mov rcx, rsi
test rax, rax
je 0x18004f4b1
call qword [rbx + 0x38]
jmp 0x18004f4b4
call qword [rbx + 0x30]
lea rdx, [rax - 1]
mov rcx, rsi
call qword [rbx + 0x40]
mov eax, dword [r14]
cmp dword [0x180096e00], eax
jle 0x18004f4fd
lea rcx, [0x180096e00]
call fcn.180051654
cmp dword [0x180096e00], 0xffffffff
jne 0x18004f4fd
lea rcx, [0x180096e08]
call fcn.180007360
lea rcx, [0x180096e00]
mov qword [0x180096e10], r15
call fcn.1800515e8
movsxd rax, dword [rdi + 0x78]
imul rcx, rax, 0xf4240
mov qword [0x180096e10], rcx
cmp byte [rdi + 0x120], r15b
je 0x18004f5c8
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18004f5c8
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 0x18004f54c
imul rax, rax, 0x64
jmp 0x18004f56a
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 [0x180096e08]
cmp rcx, qword [0x180096e10]
jl 0x18004f5c8
mov qword [0x180096e08], rax
cmp byte [rdi + 0x68], r15b
je 0x18004f596
lea rdx, str.NAV_UP_DOWN
call fcn.18004e940
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
mov rdx, qword [rsi]
mov rcx, rsi
lea rbx, [rax - 1]
call qword [rdx + 0x38]
mov rbp, qword [rsi]
mov rcx, rsi
cmp rax, rbx
jae 0x18004f5c3
call qword [rbp + 0x38]
mov rcx, rsi
lea rdx, [rax + 1]
jmp 0x18004f5c5
xor edx, edx
call qword [rbp + 0x40]
mov eax, dword [r14]
cmp dword [0x180096e18], eax
jle 0x18004f607
lea rcx, [0x180096e18]
call fcn.180051654
cmp dword [0x180096e18], 0xffffffff
jne 0x18004f607
lea rcx, [0x180096e20]
call fcn.180007360
lea rcx, [0x180096e18]
mov qword [0x180096e28], r15
call fcn.1800515e8
movsxd rax, dword [rdi + 0x7c]
imul rcx, rax, 0xf4240
mov qword [0x180096e28], rcx
cmp byte [rdi + 0x121], r15b
je 0x18004f6c3
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18004f6c3
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 0x18004f656
imul rax, rax, 0x64
jmp 0x18004f674
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 [0x180096e20]
cmp rcx, qword [0x180096e28]
jl 0x18004f6c3
mov qword [0x180096e20], rax
cmp byte [rdi + 0x68], r15b
je 0x18004f6a0
lea rdx, str.NAV_LEFT_RIGHT
call fcn.18004e940
mov rbx, qword [rsi]
mov rcx, rsi
call qword [rbx + 0x38]
mov rdx, rax
mov rcx, rsi
call qword [rbx + 0x28]
test rax, rax
je 0x18004f6c3
mov r8, qword [rax]
xor edx, edx
mov rcx, rax
call qword [r8 + 0x20]
mov eax, dword [r14]
cmp dword [0x180096e30], eax
jle 0x18004f702
lea rcx, [0x180096e30]
call fcn.180051654
cmp dword [0x180096e30], 0xffffffff
jne 0x18004f702
lea rcx, [0x180096e38]
call fcn.180007360
lea rcx, [0x180096e30]
mov qword [0x180096e40], r15
call fcn.1800515e8
movsxd rax, dword [rdi + 0x7c]
imul rcx, rax, 0xf4240
mov qword [0x180096e40], rcx
cmp byte [rdi + 0x122], r15b
je 0x18004f7c1
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18004f7c1
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 0x18004f751
imul rax, rax, 0x64
jmp 0x18004f76f
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 [0x180096e38]
cmp rcx, qword [0x180096e40]
jl 0x18004f7c1
mov qword [0x180096e38], rax
cmp byte [rdi + 0x68], r15b
je 0x18004f79b
lea rdx, str.NAV_LEFT_RIGHT
call fcn.18004e940
mov rbx, qword [rsi]
mov rcx, rsi
call qword [rbx + 0x38]
mov rdx, rax
mov rcx, rsi
call qword [rbx + 0x28]
test rax, rax
je 0x18004f7c1
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8 + 0x20]
mov rsi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x20]
xor rcx, rsp
call fcn.1800511d0
mov rbp, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret