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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x20
cmp byte [rcx + 0x50], 0
mov rdi, rcx
je 0x18001ab90
cmp byte [rcx + 0x69], 0
je 0x18001ab90
xor edx, edx
mov ecx, 2
mov r8d, 1
call fcn.1800190f0
mov edx, 0x13
mov ecx, 2
mov r8d, 1
call fcn.1800190f0
mov edx, 0x8c
mov ecx, 2
mov r8d, 1
call fcn.1800190f0
mov edx, 0x14
mov ecx, 2
mov r8d, 1
call fcn.1800190f0
mov edx, 0x1b
mov ecx, 2
mov r8d, 1
call fcn.1800190f0
mov edx, 0x50
mov ecx, 2
mov r8d, 1
call fcn.1800190f0
mov edx, 0x151
mov ecx, 2
mov r8d, 1
call fcn.1800190f0
mov edx, 0x1b
mov ecx, 2
mov r8d, 1
call fcn.1800190f0
mov edx, 0x55
mov ecx, 2
mov r8d, 1
call fcn.1800190f0
mov edx, 0x4a
mov ecx, 2
mov r8d, 1
call fcn.1800190f0
mov rax, qword gs:[0x58]
mov ecx, dword [0x180095d20]
mov edx, 4
mov r15, qword [rax + rcx*8]
add r15, rdx
mov eax, dword [r15]
cmp dword [0x180095b04], eax
jg 0x18001b4a2
xor r12d, r12d
lea rbx, str.SELECT
movabs r13, 0xe2587f8cbbd87b1d
cmp byte [rdi + 0x12c], r12b
je 0x18001abe8
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x180095b00]
cmp eax, dword [rdi + 0x6c]
jae 0x18001ac5f
mov rcx, r13
call fcn.18001bdd0
mov rcx, r12
call fcn.18001bdf0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xe3
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
call fcn.18001bd60
cmp dword [rax], r12d
je 0x18001ac9b
mov rcx, r13
call fcn.18001bdd0
mov rcx, r12
call fcn.18001bdf0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xaf
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
call fcn.18001bd60
cmp dword [rax], r12d
je 0x18001ac9b
cmp byte [rdi + 0x69], r12b
je 0x18001ac9b
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x180095b00]
cmp eax, dword [rdi + 0x6c]
jb 0x18001ac9b
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x180095b00], eax
movzx eax, byte [rdi + 0x50]
xor al, 1
mov byte [rdi + 0x50], al
cmp byte [rdi + 0x68], r12b
je 0x18001ac9b
test al, al
lea rdx, str.BACK
lea r8, str.HUD_FRONTEND_DEFAULT_SOUNDSET
mov ecx, 0xffffffff
cmovne rdx, rbx
xor r9d, r9d
call fcn.18001bcd0
mov eax, dword [r15]
cmp dword [0x180095b18], eax
jg 0x18001b4d8
movsxd rax, dword [rdi + 0x70]
movabs r14, 0x67c540aa08e4a6f5
imul rcx, rax, 0xf4240
mov qword [0x180095b10], rcx
cmp byte [rdi + 0x50], r12b
je 0x18001b44d
cmp byte [rdi + 0x12d], r12b
je 0x18001acf9
lea rcx, [rbp + 0x30]
call fcn.1800044e0
mov rax, qword [rbp + 0x30]
mov rcx, rax
sub rcx, qword [0x180095b08]
cmp rcx, qword [0x180095b10]
jge 0x18001ad5f
cmp byte [rdi + 0x50], r12b
je 0x18001b44d
mov rcx, r13
call fcn.18001bdd0
mov rcx, r12
call fcn.18001bdf0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xca
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
call fcn.18001bd60
cmp dword [rax], r12d
je 0x18001add9
cmp byte [rdi + 0x69], r12b
je 0x18001add9
lea rcx, [rbp + 0x30]
call fcn.1800044e0
mov rax, qword [rbp + 0x30]
mov rcx, rax
sub rcx, qword [0x180095b08]
cmp rcx, qword [0x180095b10]
jl 0x18001add9
mov qword [0x180095b08], rax
cmp byte [rdi + 0x68], r12b
je 0x18001adad
mov rcx, r14
call fcn.18001bdd0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xffffffff
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
lea rcx, str.BACK
call fcn.18001bdf0
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
call fcn.18001bdf0
mov rcx, r12
call fcn.18001bdf0
call fcn.18001bd60
mov rcx, qword [rdi + 0x158]
mov rax, rcx
sub rax, qword [rdi + 0x150]
sar rax, 3
cmp rax, 1
ja 0x18001adce
mov byte [rdi + 0x50], r12b
jmp 0x18001add9
lea rax, [rcx - 8]
mov qword [rdi + 0x158], rax
cmp byte [rdi + 0x50], r12b
je 0x18001b44d
mov qword [rsp + 0x58], rsi
mov rsi, qword [rdi + 0x158]
cmp qword [rdi + 0x150], rsi
je 0x18001b448
mov eax, dword [r15]
cmp dword [0x180095b30], eax
mov rsi, qword [rsi - 8]
jg 0x18001b515
movsxd rax, dword [rdi + 0x74]
imul rcx, rax, 0xf4240
mov qword [0x180095b28], rcx
cmp byte [rdi + 0x12e], r12b
je 0x18001ae58
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18001ae58
lea rcx, [rbp + 0x30]
call fcn.1800044e0
mov rax, qword [rbp + 0x30]
mov rcx, rax
sub rcx, qword [0x180095b20]
cmp rcx, qword [0x180095b28]
jge 0x18001aec6
mov rcx, r13
call fcn.18001bdd0
mov rcx, r12
call fcn.18001bdf0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xc9
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
call fcn.18001bd60
cmp dword [rax], r12d
je 0x18001af3c
cmp byte [rdi + 0x69], r12b
je 0x18001af3c
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18001af3c
lea rcx, [rbp + 0x30]
call fcn.1800044e0
mov rax, qword [rbp + 0x30]
mov rcx, rax
sub rcx, qword [0x180095b20]
cmp rcx, qword [0x180095b28]
jl 0x18001af3c
mov qword [0x180095b20], rax
cmp byte [rdi + 0x68], r12b
je 0x18001af10
mov rcx, r14
call fcn.18001bdd0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xffffffff
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
mov rcx, rbx
call fcn.18001bdf0
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
call fcn.18001bdf0
mov rcx, r12
call fcn.18001bdf0
call fcn.18001bd60
mov rax, qword [rsi]
mov rcx, rsi
mov rbx, qword [rax + 0x28]
call qword [rax + 0x38]
mov rdx, rax
mov rcx, rsi
call rbx
test rax, rax
je 0x18001af3c
mov rcx, qword [rax]
mov edx, 2
mov r8, qword [rcx + 0x20]
mov rcx, rax
call r8
mov eax, dword [r15]
cmp dword [0x180095b48], eax
jg 0x18001b552
movsxd rax, dword [rdi + 0x78]
imul rcx, rax, 0xf4240
mov qword [0x180095b40], rcx
cmp byte [rdi + 0x12f], r12b
je 0x18001af94
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18001af94
lea rcx, [rbp + 0x30]
call fcn.1800044e0
mov rax, qword [rbp + 0x30]
mov rcx, rax
sub rcx, qword [0x180095b38]
cmp rcx, qword [0x180095b40]
jge 0x18001b002
mov rcx, r13
call fcn.18001bdd0
mov rcx, r12
call fcn.18001bdf0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xbc
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
call fcn.18001bd60
cmp dword [rax], r12d
je 0x18001b079
cmp byte [rdi + 0x69], r12b
je 0x18001b079
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18001b079
lea rcx, [rbp + 0x30]
call fcn.1800044e0
mov rax, qword [rbp + 0x30]
mov rcx, rax
sub rcx, qword [0x180095b38]
cmp rcx, qword [0x180095b40]
jl 0x18001b079
mov qword [0x180095b38], rax
cmp byte [rdi + 0x68], r12b
je 0x18001b050
mov rcx, r14
call fcn.18001bdd0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xffffffff
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
lea rcx, str.NAV_UP_DOWN
call fcn.18001bdf0
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
call fcn.18001bdf0
mov rcx, r12
call fcn.18001bdf0
call fcn.18001bd60
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x38]
mov rdx, qword [rsi]
mov rcx, rsi
mov rbx, qword [rdx + 0x40]
test rax, rax
je 0x18001b06d
call qword [rdx + 0x38]
jmp 0x18001b070
call qword [rdx + 0x30]
lea rdx, [rax - 1]
mov rcx, rsi
call rbx
mov eax, dword [r15]
cmp dword [0x180095b60], eax
jg 0x18001b58f
movsxd rax, dword [rdi + 0x78]
imul rcx, rax, 0xf4240
mov qword [0x180095b58], rcx
cmp byte [rdi + 0x130], r12b
je 0x18001b0d1
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18001b0d1
lea rcx, [rbp + 0x30]
call fcn.1800044e0
mov rax, qword [rbp + 0x30]
mov rcx, rax
sub rcx, qword [0x180095b50]
cmp rcx, qword [0x180095b58]
jge 0x18001b143
mov rcx, r13
call fcn.18001bdd0
mov rcx, r12
call fcn.18001bdf0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xbb
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
call fcn.18001bd60
cmp dword [rax], r12d
je 0x18001b1d1
cmp byte [rdi + 0x69], r12b
je 0x18001b1d1
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18001b1d1
lea rcx, [rbp + 0x30]
call fcn.1800044e0
mov rax, qword [rbp + 0x30]
mov rcx, rax
sub rcx, qword [0x180095b50]
cmp rcx, qword [0x180095b58]
jl 0x18001b1d1
mov qword [0x180095b50], rax
cmp byte [rdi + 0x68], r12b
je 0x18001b191
mov rcx, r14
call fcn.18001bdd0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xffffffff
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
lea rcx, str.NAV_UP_DOWN
call fcn.18001bdf0
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
call fcn.18001bdf0
mov rcx, r12
call fcn.18001bdf0
call fcn.18001bd60
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 rdx, qword [rsi]
mov rcx, rsi
mov r14, qword [rdx + 0x40]
cmp rax, rbx
jae 0x18001b1c2
call qword [rdx + 0x38]
mov rcx, rsi
lea rdx, [rax + 1]
jmp 0x18001b1c4
xor edx, edx
call r14
movabs r14, 0x67c540aa08e4a6f5
mov eax, dword [r15]
cmp dword [0x180095b78], eax
jg 0x18001b5cc
movsxd rax, dword [rdi + 0x7c]
imul rcx, rax, 0xf4240
mov qword [0x180095b70], rcx
cmp byte [rdi + 0x131], r12b
je 0x18001b229
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18001b229
lea rcx, [rbp + 0x30]
call fcn.1800044e0
mov rax, qword [rbp + 0x30]
mov rcx, rax
sub rcx, qword [0x180095b68]
cmp rcx, qword [0x180095b70]
jge 0x18001b297
mov rcx, r13
call fcn.18001bdd0
mov rcx, r12
call fcn.18001bdf0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xae
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
call fcn.18001bd60
cmp dword [rax], r12d
je 0x18001b30e
cmp byte [rdi + 0x69], r12b
je 0x18001b30e
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18001b30e
lea rcx, [rbp + 0x30]
call fcn.1800044e0
mov rax, qword [rbp + 0x30]
mov rcx, rax
sub rcx, qword [0x180095b68]
cmp rcx, qword [0x180095b70]
jl 0x18001b30e
mov qword [0x180095b68], rax
cmp byte [rdi + 0x68], r12b
je 0x18001b2e5
mov rcx, r14
call fcn.18001bdd0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xffffffff
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
lea rcx, str.NAV_LEFT_RIGHT
call fcn.18001bdf0
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
call fcn.18001bdf0
mov rcx, r12
call fcn.18001bdf0
call fcn.18001bd60
mov rax, qword [rsi]
mov rcx, rsi
mov rbx, qword [rax + 0x28]
call qword [rax + 0x38]
mov rdx, rax
mov rcx, rsi
call rbx
test rax, rax
je 0x18001b30e
mov rcx, qword [rax]
xor edx, edx
mov r8, qword [rcx + 0x20]
mov rcx, rax
call r8
mov eax, dword [r15]
cmp dword [0x180095b90], eax
jg 0x18001b465
movsxd rax, dword [rdi + 0x7c]
imul rcx, rax, 0xf4240
mov qword [0x180095b88], rcx
cmp byte [rdi + 0x132], r12b
je 0x18001b366
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18001b366
lea rcx, [rbp + 0x30]
call fcn.1800044e0
mov rax, qword [rbp + 0x30]
mov rcx, rax
sub rcx, qword [0x180095b80]
cmp rcx, qword [0x180095b88]
jge 0x18001b3d4
mov rcx, r13
call fcn.18001bdd0
mov rcx, r12
call fcn.18001bdf0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xaf
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
call fcn.18001bd60
cmp dword [rax], r12d
je 0x18001b448
cmp byte [rdi + 0x69], r12b
je 0x18001b448
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x30]
test rax, rax
je 0x18001b448
lea rcx, [rbp + 0x30]
call fcn.1800044e0
mov rax, qword [rbp + 0x30]
mov rdx, rax
sub rdx, qword [0x180095b80]
cmp rdx, qword [0x180095b88]
jl 0x18001b448
mov qword [0x180095b80], rax
cmp byte [rdi + 0x68], r12b
je 0x18001b422
mov rcx, r14
call fcn.18001bdd0
mov qword [rbp + 0x30], r12
mov dword [rbp + 0x30], 0xffffffff
mov rcx, qword [rbp + 0x30]
call fcn.18001bdf0
lea rcx, str.NAV_LEFT_RIGHT
call fcn.18001bdf0
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
call fcn.18001bdf0
mov rcx, r12
call fcn.18001bdf0
call fcn.18001bd60
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 0x18001b448
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8 + 0x20]
mov rsi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
lea rcx, [0x180095b90]
call fcn.18004782c
cmp dword [0x180095b90], 0xffffffff
jne 0x18001b31d
lea rcx, [0x180095b80]
call fcn.1800044e0
lea rcx, [0x180095b90]
mov qword [0x180095b88], r12
call fcn.1800477c0
jmp 0x18001b31d
lea rcx, [0x180095b04]
call fcn.18004782c
cmp dword [0x180095b04], 0xffffffff
jne 0x18001abba
call qword [sym.imp.KERNEL32.dll_GetTickCount]
lea rcx, [0x180095b04]
mov dword [0x180095b00], eax
call fcn.1800477c0
jmp 0x18001abba
lea rcx, [0x180095b18]
call fcn.18004782c
cmp dword [0x180095b18], 0xffffffff
jne 0x18001acaa
lea rcx, [0x180095b08]
call fcn.1800044e0
lea rcx, [0x180095b18]
mov qword [0x180095b10], r12
call fcn.1800477c0
jmp 0x18001acaa
lea rcx, [0x180095b30]
call fcn.18004782c
cmp dword [0x180095b30], 0xffffffff
jne 0x18001ae0f
lea rcx, [0x180095b20]
call fcn.1800044e0
lea rcx, [0x180095b30]
mov qword [0x180095b28], r12
call fcn.1800477c0
jmp 0x18001ae0f
lea rcx, [0x180095b48]
call fcn.18004782c
cmp dword [0x180095b48], 0xffffffff
jne 0x18001af4b
lea rcx, [0x180095b38]
call fcn.1800044e0
lea rcx, [0x180095b48]
mov qword [0x180095b40], r12
call fcn.1800477c0
jmp 0x18001af4b
lea rcx, [0x180095b60]
call fcn.18004782c
cmp dword [0x180095b60], 0xffffffff
jne 0x18001b088
lea rcx, [0x180095b50]
call fcn.1800044e0
lea rcx, [0x180095b60]
mov qword [0x180095b58], r12
call fcn.1800477c0
jmp 0x18001b088
lea rcx, [0x180095b78]
call fcn.18004782c
cmp dword [0x180095b78], 0xffffffff
jne 0x18001b1e0
lea rcx, [0x180095b68]
call fcn.1800044e0
lea rcx, [0x180095b78]
mov qword [0x180095b70], r12
call fcn.1800477c0
jmp 0x18001b1e0