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

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 0x28], 0xfffffffffffffffe
mov qword [rsp + 0xa8], rbx
mov rax, qword [0x1803bc678]
xor rax, rsp
mov qword [rbp - 8], rax
mov r14, r8
mov r15, rdx
mov rbx, rcx
mov qword [rbp - 0x20], rdx
mov qword [rbp - 0x18], r8
cmp byte [rcx + 0x101], 0
je 0x1801596a4
cmp byte [rcx + 0x108], 0
je 0x1801596fe
cmp byte [rcx + 0x102], 0
je 0x1801596b6
cmp byte [rcx + 0x109], 0
je 0x1801596fe
cmp byte [rcx + 0xfd], 0
je 0x1801596c8
cmp byte [rcx + 0x104], 0
je 0x1801596fe
cmp byte [rcx + 0xfe], 0
je 0x1801596da
cmp byte [rcx + 0x105], 0
je 0x1801596fe
cmp byte [rcx + 0xff], 0
je 0x1801596ec
cmp byte [rcx + 0x106], 0
je 0x1801596fe
cmp byte [rcx + 0x100], 0
je 0x180159705
cmp byte [rcx + 0x107], 0
jne 0x180159705
mov byte [rcx + 0x3b90], 0
xor edi, edi
cmp byte [rcx + 0xfc], dil
je 0x18015971d
cmp byte [rcx + 0x103], dil
je 0x1801597da
movabs rsi, 0xe2587f8cbbd87b1d
cmp byte [rcx + 0x3b90], dil
je 0x180159865
mov ecx, dword [rcx + 0xf4]
mov dword [0x1803eda50], edi
mov qword [0x1803ebe70], rsi
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], edi
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb18], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], ecx
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], edi
je 0x180159865
mov ecx, dword [rbx + 0xf8]
mov dword [0x1803eda50], edi
movabs rax, 0x91aef906bca88877
mov qword [0x1803ebe70], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], edi
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb18], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], ecx
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], edi
je 0x180159865
mov eax, dword [rbx + 0x3b08]
test eax, eax
jne 0x1801597ee
mov rcx, rbx
call fcn.1801572a0
jmp 0x180159822
jle 0x180159801
mov rcx, rbx
call fcn.180158dc0
cmp dword [rbx + 0x3b08], 0
jg 0x1801597f0
mov rcx, qword [rbx + 0x19c0]
test rcx, rcx
je 0x180159813
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, qword [r14 + 0x38]
test rcx, rcx
je 0x180159822
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbx + 0x3b6c], eax
mov rcx, qword [r15 + 0x38]
test rcx, rcx
je 0x180159847
mov rax, qword [rcx]
cmp rcx, r15
setne dl
call qword [rax + reloc.WLDAP32.dll_Ordinal_32]
mov qword [r15 + 0x38], rdi
mov rcx, qword [r14 + 0x38]
test rcx, rcx
je 0x180159860
mov rax, qword [rcx]
cmp rcx, r14
setne dl
call qword [rax + reloc.WLDAP32.dll_Ordinal_32]
mov qword [r14 + 0x38], rdi
jmp 0x180159f4b
cmp byte [rbx + 0x102], dil
je 0x180159877
cmp byte [rbx + 0x109], dil
je 0x1801598c8
cmp byte [rbx + 0x3b90], dil
je 0x1801598fa
mov dword [0x1803eda50], edi
mov qword [0x1803ebe70], rsi
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], edi
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb18], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], 0xca
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], edi
je 0x1801598fa
mov eax, dword [rbx + 0x3b08]
test eax, eax
jle 0x1801598ee
cmp eax, 1
jne 0x1801598e6
mov rcx, qword [r14 + 0x38]
test rcx, rcx
je 0x1801598e6
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, rbx
call fcn.180158dc0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbx + 0x3b6c], eax
movabs r12, 0x67c540aa08e4a6f5
lea r13, str.NAV_UP_DOWN
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
cmp byte [rbx + 0x101], dil
je 0x180159924
cmp byte [rbx + 0x108], dil
je 0x180159980
cmp byte [rbx + 0x3b90], dil
je 0x1801599ed
mov dword [0x1803eda50], edi
mov qword [0x1803ebe70], rsi
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], edi
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb18], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], 0xc9
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], edi
je 0x1801599ed
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
cmp dword [rbx + 0x3b08], edi
jle 0x1801599da
mov dword [0x1803eda50], edi
mov qword [0x1803ebe70], r12
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], 0xffffffff
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb18], rax
mov qword [0x1803edb20], r13
mov qword [0x1803edb28], rcx
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], edi
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb30], rax
mov dword [0x1803eda40], 4
call fcn.18014eb30
mov byte [rbx + 0x1aa8], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbx + 0x3b6c], eax
mov esi, dword [rbx + 0xe0]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
lea rdx, [rbp - 0x10]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rbp - 0x10], eax
jne 0x180159a20
mov ecx, esi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
jne 0x180159a83
cmp byte [rbx + 0x3b90], dil
je 0x180159b7e
mov dword [0x1803eda50], edi
movabs rax, 0xe2587f8cbbd87b1d
mov qword [0x1803ebe70], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], edi
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb18], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], 0xbb
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], edi
je 0x180159b7e
mov ecx, dword [rbx + 0x1aa4]
mov r8d, dword [rbx + 0x1aa0]
cmp ecx, r8d
jge 0x180159a99
inc ecx
jmp 0x180159a9e
mov ecx, 1
mov dword [rbx + 0x1aa4], ecx
mov r9d, r8d
nop word [rax + rax]
mov rdx, qword [rbx + 0x3ab8]
mov rax, qword [rbx + 0x3ab0]
cmp rax, rdx
je 0x180159afd
cmp dword [rax], ecx
je 0x180159ad0
add rax, 4
cmp rax, rdx
jne 0x180159ac3
cmp rax, rdx
je 0x180159afd
mov ecx, dword [rbx + 0x1aa4]
cmp ecx, r8d
jg 0x180159afd
inc ecx
mov dword [rbx + 0x1aa4], ecx
sub r9d, 1
je 0x180159afd
cmp ecx, r8d
jne 0x180159ab0
mov dword [rbx + 0x1aa4], edi
mov ecx, edi
jmp 0x180159ab0
cmp dword [rbx + 0x3b08], edi
jle 0x180159b5e
mov dword [0x1803eda50], edi
mov qword [0x1803ebe70], r12
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], 0xffffffff
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb18], rax
mov qword [0x1803edb20], r13
lea rax, str.HUD_FRONTEND_DEFAULT_SOUNDSET
mov qword [0x1803edb28], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], edi
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb30], rax
mov dword [0x1803eda40], 4
call fcn.18014eb30
mov dword [rbx + 0x1aa8], edi
mov byte [rbx + 0x1aac], dil
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbx + 0x3b6c], eax
mov byte [rbx + 0x1aac], 1
mov esi, dword [rbx + 0xdc]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
lea rdx, [rbp - 0x10]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rbp - 0x10], eax
jne 0x180159bb1
mov ecx, esi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
jne 0x180159c14
cmp byte [rbx + 0x3b90], dil
je 0x180159d0d
mov dword [0x1803eda50], edi
movabs rax, 0xe2587f8cbbd87b1d
mov qword [0x1803ebe70], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], edi
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb18], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], 0xbc
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], edi
je 0x180159d0d
mov ecx, dword [rbx + 0x1aa4]
mov r8d, dword [rbx + 0x1aa0]
cmp ecx, 1
jle 0x180159c2a
dec ecx
jmp 0x180159c2d
mov ecx, r8d
mov dword [rbx + 0x1aa4], ecx
nop dword [rax]
nop word [rax + rax]
mov rdx, qword [rbx + 0x3ab8]
mov rax, qword [rbx + 0x3ab0]
cmp rax, rdx
je 0x180159c8c
cmp dword [rax], ecx
je 0x180159c60
add rax, 4
cmp rax, rdx
jne 0x180159c53
cmp rax, rdx
je 0x180159c8c
mov ecx, dword [rbx + 0x1aa4]
test ecx, ecx
js 0x180159c8c
dec ecx
mov dword [rbx + 0x1aa4], ecx
sub r8d, 1
je 0x180159c8c
cmp ecx, 0xffffffff
jne 0x180159c40
mov ecx, dword [rbx + 0x1aa0]
dec ecx
jmp 0x180159c2d
cmp dword [rbx + 0x3b08], edi
jle 0x180159ced
mov dword [0x1803eda50], edi
mov qword [0x1803ebe70], r12
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], 0xffffffff
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb18], rax
mov qword [0x1803edb20], r13
lea rax, str.HUD_FRONTEND_DEFAULT_SOUNDSET
mov qword [0x1803edb28], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], edi
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb30], rax
mov dword [0x1803eda40], 4
call fcn.18014eb30
mov dword [rbx + 0x1aa8], edi
mov byte [rbx + 0x1aac], dil
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbx + 0x3b6c], eax
mov byte [rbx + 0x1aab], 1
mov esi, dword [rbx + 0xe4]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
lea rdx, [rbp - 0x10]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rbp - 0x10], eax
jne 0x180159d40
mov ecx, esi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
jne 0x180159d9f
cmp byte [rbx + 0x3b90], dil
je 0x180159e13
mov dword [0x1803eda50], edi
movabs rax, 0xe2587f8cbbd87b1d
mov qword [0x1803ebe70], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], edi
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb18], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], 0xae
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], edi
je 0x180159e13
cmp dword [rbx + 0x3b08], edi
jle 0x180159e00
mov dword [0x1803eda50], edi
mov qword [0x1803ebe70], r12
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], 0xffffffff
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb18], rax
mov qword [0x1803edb20], r13
lea rax, str.HUD_FRONTEND_DEFAULT_SOUNDSET
mov qword [0x1803edb28], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], edi
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb30], rax
mov dword [0x1803eda40], 4
call fcn.18014eb30
mov byte [rbx + 0x1aa9], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbx + 0x3b6c], eax
mov esi, dword [rbx + 0xe8]
call qword [sym.imp.USER32.dll_GetForegroundWindow]
lea rdx, [rbp - 0x10]
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rbp - 0x10], eax
jne 0x180159e46
mov ecx, esi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
jne 0x180159ea5
cmp byte [rbx + 0x3b90], dil
je 0x180159f19
mov dword [0x1803eda50], edi
movabs rax, 0xe2587f8cbbd87b1d
mov qword [0x1803ebe70], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], edi
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb18], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], 0xaf
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb20], rax
mov dword [0x1803eda40], 2
call fcn.18014eb30
cmp dword [rax], edi
je 0x180159f19
cmp dword [rbx + 0x3b08], edi
jle 0x180159f06
mov dword [0x1803eda50], edi
mov qword [0x1803ebe70], r12
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], 0xffffffff
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb18], rax
mov qword [0x1803edb20], r13
lea rax, str.HUD_FRONTEND_DEFAULT_SOUNDSET
mov qword [0x1803edb28], rax
mov qword [rbp - 0x10], rdi
mov dword [rbp - 0x10], edi
mov rax, qword [rbp - 0x10]
mov qword [0x1803edb30], rax
mov dword [0x1803eda40], 4
call fcn.18014eb30
mov byte [rbx + 0x1aaa], 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbx + 0x3b6c], eax
mov rcx, qword [r15 + 0x38]
test rcx, rcx
je 0x180159f32
mov rax, qword [rcx]
cmp rcx, r15
setne dl
call qword [rax + reloc.WLDAP32.dll_Ordinal_32]
mov qword [r15 + 0x38], rdi
mov rcx, qword [r14 + 0x38]
test rcx, rcx
je 0x180159f4b
mov rax, qword [rcx]
cmp rcx, r14
setne dl
call qword [rax + reloc.WLDAP32.dll_Ordinal_32]
mov qword [r14 + 0x38], rdi
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1801e5c70
mov rbx, qword [rsp + 0xa8]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret