Function at 0x18003bf70
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov rax, qword [0x1801deda8]
xor rax, rsp
mov qword [rbp + 8], rax
mov ebx, dword [0x1801db820]
mov r12d, r9d
mov esi, dword [0x1801db828]
inc ebx
mov r15d, dword [rbp + 0xd0]
mov rdi, r8
mov dword [0x1801db820], ebx
mov r13, rdx
mov r14, rcx
cmp esi, ebx
jne 0x18003bff7
lea r8, [rcx + 0x20]
lea rcx, [0x1801db8e0]
cmp rcx, r8
je 0x18003bff7
cmp qword [r8 + 0x18], 0x10
mov rdx, r8
jb 0x18003bfe2
mov rdx, qword [r8]
mov r8, qword [r8 + 0x10]
call fcn.1800232e0
mov esi, dword [0x1801db828]
mov ebx, dword [0x1801db820]
movaps xmmword [rsp + 0x130], xmm9
call fcn.180032d90
test al, al
je 0x18003c310
mov eax, dword [0x1801db82c]
lea rcx, [rbp - 0x38]
movss xmm9, dword [0x180135d94]
inc eax
movaps xmmword [rsp + 0x160], xmm6
mov rdx, r14
movss xmm6, dword [0x1801db7c8]
movaps xmmword [rsp + 0x150], xmm7
movaps xmmword [rsp + 0x140], xmm8
movaps xmmword [rsp + 0x120], xmm10
movss xmm10, dword [0x180135dd8]
movaps xmmword [rsp + 0x110], xmm11
movss xmm11, dword [0x180135dd4]
mov dword [0x1801db82c], eax
addss xmm6, dword [0x1801db7c4]
subss xmm6, xmm11
cmp esi, ebx
jne 0x18003c0d2
mov dword [0x1801db7e0], eax
inc eax
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mulss xmm7, xmm9
addss xmm7, xmm10
call fcn.180018390
mov rcx, rax
mov byte [rsp + 0x58], 0
mov eax, dword [0x18015b09c]
mov byte [rsp + 0x50], 0
mov dword [rsp + 0x48], eax
mov eax, dword [0x18015b098]
mov dword [rsp + 0x40], eax
mov eax, dword [0x18015b094]
mov dword [rsp + 0x38], eax
mov eax, dword [0x18015b090]
jmp 0x18003c11b
inc eax
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mulss xmm7, xmm9
addss xmm7, xmm10
call fcn.180018390
mov rcx, rax
mov byte [rsp + 0x58], 0
mov eax, dword [0x18015b05c]
mov byte [rsp + 0x50], 0
mov dword [rsp + 0x48], eax
mov eax, dword [0x18015b058]
mov dword [rsp + 0x40], eax
mov eax, dword [0x18015b054]
mov dword [rsp + 0x38], eax
mov eax, dword [0x18015b050]
movss xmm8, dword [0x180135e84]
movaps xmm3, xmm7
mov dword [rsp + 0x30], eax
movaps xmm2, xmm6
movss dword [rsp + 0x28], xmm8
xor edx, edx
movss dword [rsp + 0x20], xmm8
call fcn.180094b70
mov eax, dword [0x1801db820]
movss xmm6, dword [0x1801db7c8]
addss xmm6, dword [0x1801db7c4]
cmp dword [0x1801db828], eax
mov edx, dword [rdi]
mov eax, dword [0x1801db82c]
addss xmm6, xmm11
jne 0x18003c1c6
inc eax
lea rcx, [rbp - 0x38]
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mulss xmm7, xmm9
addss xmm7, xmm10
call fcn.18003c730
movss xmm0, dword [0x180135d64]
mov rcx, rax
mov eax, dword [0x18015b09c]
mov byte [rsp + 0x50], 1
movss dword [rsp + 0x48], xmm0
mov dword [rsp + 0x40], eax
mov eax, dword [0x18015b098]
mov dword [rsp + 0x38], eax
mov eax, dword [0x18015b094]
mov dword [rsp + 0x30], eax
mov eax, dword [0x18015b090]
jmp 0x18003c217
inc eax
lea rcx, [rbp - 0x18]
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mulss xmm7, xmm9
addss xmm7, xmm10
call fcn.18003c730
mov rcx, rax
mov byte [rsp + 0x50], 1
mov eax, dword [0x18015b05c]
xorps xmm0, xmm0
movss dword [rsp + 0x48], xmm0
mov dword [rsp + 0x40], eax
mov eax, dword [0x18015b058]
mov dword [rsp + 0x38], eax
mov eax, dword [0x18015b054]
mov dword [rsp + 0x30], eax
mov eax, dword [0x18015b050]
mov dword [rsp + 0x28], eax
movaps xmm3, xmm8
movaps xmm2, xmm7
movss dword [rsp + 0x20], xmm8
movaps xmm1, xmm6
call fcn.180094d20
mov eax, dword [0x1801db820]
cmp dword [0x1801db828], eax
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm10, xmmword [rsp + 0x120]
movaps xmm8, xmmword [rsp + 0x140]
movaps xmm7, xmmword [rsp + 0x150]
movaps xmm6, xmmword [rsp + 0x160]
jne 0x18003c6b4
movss xmm0, dword [0x1801db7c8]
lea rdx, str.shop_arrows_upanddown
addss xmm0, dword [0x1801db7c4]
mov eax, dword [0x1801db82c]
lea rcx, str.commonmenu
movss xmm1, dword [0x180135d98]
inc eax
mov dword [rsp + 0x50], 0xff
addss xmm0, dword [0x180135dd0]
movd xmm3, eax
xor eax, eax
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], eax
cvtps2pd xmm0, xmm0
cvtdq2ps xmm3, xmm3
subsd xmm0, qword [0x180135f20]
mulss xmm3, xmm9
addss xmm3, dword [0x180135de4]
cvtpd2ps xmm2, xmm0
movss xmm0, dword [0x180136264]
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [0x180135d7c]
movss dword [rsp + 0x28], xmm1
movss dword [rsp + 0x20], xmm0
call fcn.1800373f0
mov esi, dword [0x1801db828]
mov ebx, dword [0x1801db820]
cmp esi, ebx
jne 0x18003c6b4
mov esi, dword [rbp + 0xd8]
or rbx, 0xffffffffffffffff
cmp byte [0x1801db902], 0
movabs rax, 0x18f1bfaf88ac511b
je 0x18003c39c
mov rcx, rax
call fcn.1800b83e0
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x60], ebx
mov rcx, qword [rsp + 0x60]
call fcn.1800b8400
lea rcx, str.NAV_UP_DOWN
call fcn.1800b8400
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
call fcn.1800b8400
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x60], 1
mov rcx, qword [rsp + 0x60]
call fcn.1800b8400
call fcn.1800b8390
mov eax, dword [rdi]
cmp eax, r12d
jg 0x18003c398
mov dword [rdi], r15d
jmp 0x18003c40c
sub eax, esi
jmp 0x18003c40a
cmp byte [0x1801db901], 0
je 0x18003c416
mov rcx, rax
call fcn.1800b83e0
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x60], ebx
mov rcx, qword [rsp + 0x60]
call fcn.1800b8400
lea rcx, str.NAV_UP_DOWN
call fcn.1800b8400
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
call fcn.1800b8400
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x60], 1
mov rcx, qword [rsp + 0x60]
call fcn.1800b8400
call fcn.1800b8390
mov eax, dword [rdi]
cmp eax, r15d
jl 0x18003c408
mov dword [rdi], r12d
jmp 0x18003c40c
add eax, esi
mov dword [rdi], eax
movabs rax, 0x18f1bfaf88ac511b
cmp byte [rbp + 0xe0], 0
je 0x18003c503
cmp byte [0x1801db904], 0
je 0x18003c493
mov rcx, rax
call fcn.1800b83e0
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x60], ebx
mov rcx, qword [rsp + 0x60]
call fcn.1800b8400
lea rcx, str.NAV_UP_DOWN
call fcn.1800b8400
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
call fcn.1800b8400
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x60], 1
mov rcx, qword [rsp + 0x60]
call fcn.1800b8400
call fcn.1800b8390
mov eax, dword [rdi]
cmp eax, r12d
jg 0x18003c48f
mov dword [rdi], r15d
jmp 0x18003c503
sub eax, esi
jmp 0x18003c501
cmp byte [0x1801db903], 0
je 0x18003c503
mov rcx, rax
call fcn.1800b83e0
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x60], ebx
mov rcx, qword [rsp + 0x60]
call fcn.1800b8400
lea rcx, str.NAV_UP_DOWN
call fcn.1800b8400
lea rcx, str.HUD_FRONTEND_DEFAULT_SOUNDSET
call fcn.1800b8400
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x60], 1
mov rcx, qword [rsp + 0x60]
call fcn.1800b8400
call fcn.1800b8390
mov eax, dword [rdi]
cmp eax, r15d
jl 0x18003c4ff
mov dword [rdi], r12d
jmp 0x18003c503
add eax, esi
mov dword [rdi], eax
cmp byte [rbp + 0xe8], 0
je 0x18003c6b4
mov ecx, 0x75
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8001
cmp ax, cx
je 0x18003c539
mov edx, 0xcb
xor ecx, ecx
call fcn.18003b4d0
test eax, eax
je 0x18003c6b4
mov r8d, r15d
lea rdx, [0x18012e4dc]
lea rcx, [rbp - 0x18]
call fcn.1800b3b20
movdqa xmm0, xmmword [0x180136670]
lea rax, [rbp - 0x18]
movdqu xmmword [rbp - 0x48], xmm0
mov byte [rbp - 0x58], 0
mov r8, rbx
inc r8
cmp byte [rax + r8], 0
jne 0x18003c564
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x58]
call fcn.1800232e0
cmp qword [rbp - 0x40], 0x10
lea rsi, [rbp - 0x58]
mov r8d, dword [rdi]
lea rdx, [0x18012e4dc]
cmovae rsi, qword [rbp - 0x58]
lea rcx, [rbp - 0x38]
call fcn.1800b3b20
movdqa xmm0, xmmword [0x180136670]
lea rax, [rbp - 0x38]
movdqu xmmword [rbp - 0x68], xmm0
mov byte [rbp - 0x78], 0
mov r8, rbx
inc r8
cmp byte [rax + r8], 0
jne 0x18003c5b4
lea rdx, [rbp - 0x38]
lea rcx, [rbp - 0x78]
call fcn.1800232e0
cmp qword [rbp - 0x60], 0x10
lea r15, [rbp - 0x78]
cmovae r15, qword [rbp - 0x78]
nop dword [rax]
cmp byte [rsi + rbx + 1], 0
lea rbx, [rbx + 1]
jne 0x18003c5e0
mov rdx, r14
lea rcx, [rsp + 0x68]
call fcn.180018390
mov rdx, rax
lea r9d, [rbx + 1]
mov r8, r15
mov ecx, 3
call fcn.18009dc30
mov rax, qword [rbp - 0x60]
cmp rax, 0x10
jb 0x18003c654
mov rcx, qword [rbp - 0x78]
inc rax
cmp rax, 0x1000
jb 0x18003c64f
test cl, 0x1f
jne 0x18003c722
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x18003c722
sub rcx, rax
sub rcx, 8
cmp rcx, 0x1f
ja 0x18003c722
mov rcx, rax
call fcn.180018a40
mov rax, qword [rbp - 0x40]
movdqa xmm0, xmmword [0x180136670]
mov byte [rbp - 0x78], 0
movdqu xmmword [rbp - 0x68], xmm0
cmp rax, 0x10
jb 0x18003c6ad
mov rcx, qword [rbp - 0x58]
inc rax
cmp rax, 0x1000
jb 0x18003c6a8
test cl, 0x1f
jne 0x18003c728
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x18003c728
sub rcx, rax
sub rcx, 8
cmp rcx, 0x1f
ja 0x18003c728
mov rcx, rax
call fcn.180018a40
mov qword [0x1801db908], rdi
mov rdx, r14
mov rcx, r13
call fcn.180018390
lea rdx, [r14 + 0x20]
lea rcx, [r13 + 0x20]
call fcn.180018390
movzx ecx, byte [r14 + 0x40]
lea rdx, [r14 + 0x48]
mov byte [r13 + 0x40], cl
lea rcx, [r13 + 0x48]
call fcn.180018390
lea rdx, [r14 + 0x68]
lea rcx, [r13 + 0x68]
call fcn.180018390
movaps xmm9, xmmword [rsp + 0x130]
mov rax, r13
mov rcx, qword [rbp + 8]
xor rcx, rsp
call fcn.1800bcd90
mov rbx, qword [rsp + 0x1c8]
add rsp, 0x170
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1800c7f0c
int3
call fcn.1800c7f0c
int3