Function at 0x180091fd0
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling

Disassembly:
push rdi
sub rsp, 0x20
cmp byte [0x1801db905], 0
mov edi, 0x8000
jne 0x180092042
cmp byte [0x1801db907], 0
jne 0x180092042
cmp dword [0x1801db834], 0
je 0x180092042
mov edx, 0xae
xor ecx, ecx
call fcn.18003b530
test eax, eax
jne 0x18009203b
lea ecx, [rax + 0x64]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test di, ax
jne 0x18009203b
mov edx, 0xaf
xor ecx, ecx
call fcn.18003b530
test eax, eax
jne 0x180092032
lea ecx, [rax + 0x66]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test di, ax
je 0x180092042
mov byte [0x1801db903], 1
jmp 0x180092042
mov byte [0x1801db904], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x1801e4640]
cmp eax, 0xc8
jbe 0x1800924fe
cmp byte [0x1801db905], 0
jne 0x1800924fe
cmp byte [0x1801db907], 0
jne 0x1800924fe
xor ecx, ecx
mov qword [rsp + 0x38], rbx
cmp dword [0x1801db834], ecx
jne 0x180092215
mov edx, 0xce
call fcn.18003b530
test eax, eax
je 0x1800920a4
mov edx, 0xea
xor ecx, ecx
call fcn.18003b530
test eax, eax
jne 0x1800920e1
mov ecx, 0x73
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ebx, 0x8001
cmp ax, bx
jne 0x1800924f9
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp ax, bx
jne 0x1800920e1
mov ecx, 0x45
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp ax, bx
je 0x1800924f9
mov rax, qword [0x1801e4680]
xor ebx, ebx
mov rdx, qword [0x1801e4678]
sub rax, rdx
mov qword [rsp + 0x40], rbp
sar rax, 5
mov ebp, ebx
lea edi, [rbx + 1]
test rax, rax
je 0x180092165
mov qword [rsp + 0x48], rsi
mov esi, ebx
nop
add rdx, rsi
cmp qword [rdx + 0x18], 0x10
jb 0x18009211d
mov rdx, qword [rdx]
lea rcx, str.MPPLY__s
call fcn.1800ab2d0
mov rcx, rax
call fcn.180038fd0
mov ecx, eax
mov r8d, edi
xor edx, edx
call fcn.180099b70
mov rcx, qword [0x1801e4680]
inc ebp
mov rdx, qword [0x1801e4678]
add rsi, 0x20
sub rcx, rdx
movsxd rax, ebp
sar rcx, 5
cmp rax, rcx
jb 0x180092110
mov rsi, qword [rsp + 0x48]
mov byte [0x1801e51e5], dil
call qword [sym.imp.KERNEL32.dll_GetTickCount]
movsxd rcx, dword [0x1801db838]
lea r8, [0x1801db820]
mov dword [0x1801e4640], eax
mov eax, dword [0x1801db834]
mov dword [r8 + rcx*4 + 0x20], eax
movsxd rcx, dword [0x1801db838]
mov eax, dword [0x1801db828]
mov dword [r8 + rcx*4 + 0x70], eax
movabs rcx, 0x18f1bfaf88ac511b
mov qword [0x1801db834], rdi
mov dword [0x1801db828], edi
call fcn.1800b83e0
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xffffffff
mov rcx, qword [rsp + 0x30]
call fcn.1800b8400
lea rcx, [0x18012ffd0]
call fcn.1800b8400
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
call fcn.1800b8400
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], edi
mov rcx, qword [rsp + 0x30]
call fcn.1800b8400
mov rbp, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp fcn.1800b8390
mov edx, 0xca
call fcn.18003b4d0
test eax, eax
jne 0x18009241a
lea ecx, [rax + 0x60]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ebx, 0x8001
cmp ax, bx
je 0x18009241a
mov edx, 0xc9
xor ecx, ecx
call fcn.18003b4d0
test eax, eax
jne 0x1800923d3
lea ecx, [rax + 0x65]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp ax, bx
je 0x1800923d3
mov edx, 0xbc
xor ecx, ecx
call fcn.18003b530
test eax, eax
jne 0x1800923b6
lea ecx, [rax + 0x68]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp ax, bx
je 0x1800923b6
mov edx, 0xbb
xor ecx, ecx
call fcn.18003b530
test eax, eax
jne 0x18009235a
lea ecx, [rax + 0x62]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp ax, bx
je 0x18009235a
mov edx, 0xae
xor ecx, ecx
call fcn.18003b530
test eax, eax
jne 0x180092351
lea ecx, [rax + 0x64]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cmp ax, bx
je 0x180092351
mov edx, 0xaf
xor ecx, ecx
call fcn.18003b530
test eax, eax
jne 0x1800922f4
lea ecx, [rax + 0x66]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test di, ax
je 0x1800924f9
mov byte [0x1801db901], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
movabs rcx, 0x18f1bfaf88ac511b
mov dword [0x1801e4640], eax
call fcn.1800b83e0
xor ebx, ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xffffffff
mov rcx, qword [rsp + 0x30]
call fcn.1800b8400
lea rcx, str.NAV_UP_DOWN
call fcn.1800b8400
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
call fcn.1800b8400
mov edi, 1
jmp 0x1800924e1
mov byte [0x1801db902], 1
jmp 0x1800922fb
mov eax, dword [0x1801db828]
mov edi, 1
inc eax
cmp eax, dword [0x1801db820]
cmovg eax, edi
mov dword [0x1801db828], eax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
movabs rcx, 0x18f1bfaf88ac511b
mov dword [0x1801e4640], eax
call fcn.1800b83e0
xor ebx, ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xffffffff
mov rcx, qword [rsp + 0x30]
call fcn.1800b8400
lea rcx, str.NAV_UP_DOWN
jmp 0x1800924d0
mov eax, dword [0x1801db828]
dec eax
cmp eax, 1
cmovl eax, dword [0x1801db820]
mov dword [0x1801db828], eax
jmp 0x1800922fb
mov byte [0x1801db900], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
movabs rcx, 0x18f1bfaf88ac511b
mov dword [0x1801e4640], eax
call fcn.1800b83e0
xor ebx, ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xffffffff
mov rcx, qword [rsp + 0x30]
call fcn.1800b8400
lea rcx, str.SELECT
jmp 0x180092336
call qword [sym.imp.KERNEL32.dll_GetTickCount]
xor ebx, ebx
mov dword [0x1801e4640], eax
mov edi, 1
lea r8, [0x1801db820]
cmp dword [0x1801db834], edi
jne 0x180092474
movsxd rax, dword [0x1801db838]
mov byte [0x1801e51e5], bl
mov dword [r8 + rax*4 + 0x20], edi
movsxd rcx, dword [0x1801db838]
mov eax, dword [0x1801db828]
mov dword [r8 + rcx*4 + 0x70], eax
inc dword [0x1801db838]
mov dword [0x1801db828], edi
mov dword [0x1801db834], ebx
jmp 0x1800924a3
mov edx, dword [0x1801db838]
dec edx
movsxd rax, edx
lea rcx, [rax*4]
mov eax, dword [rcx + r8 + 0x20]
mov dword [0x1801db834], eax
mov eax, dword [rcx + r8 + 0x70]
mov dword [0x1801db828], eax
mov dword [0x1801db838], edx
movabs rcx, 0x18f1bfaf88ac511b
call fcn.1800b83e0
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], 0xffffffff
mov rcx, qword [rsp + 0x30]
call fcn.1800b8400
lea rcx, str.BACK
call fcn.1800b8400
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
call fcn.1800b8400
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x30], edi
mov rcx, qword [rsp + 0x30]
call fcn.1800b8400
call fcn.1800b8390
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret