Function at 0x18003c7b0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov rax, qword [0x1801deda8]
xor rax, rsp
mov qword [rbp + 0x18], rax
mov eax, dword [0x1801db820]
mov r15d, r9d
mov rbx, qword [rbp + 0xf8]
inc eax
cmp dword [0x1801db828], eax
mov rdi, r8
mov r14d, dword [rbp + 0xe0]
mov r13, rcx
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x68], rbx
mov dword [0x1801db820], eax
jne 0x18003c832
lea r8, [rcx + 0x20]
lea rcx, [0x1801db8e0]
cmp rcx, r8
je 0x18003c832
cmp qword [r8 + 0x18], 0x10
mov rdx, r8
jb 0x18003c829
mov rdx, qword [r8]
mov r8, qword [r8 + 0x10]
call fcn.1800232e0
call fcn.180032d90
xor esi, esi
test al, al
je 0x18003cd15
mov ecx, dword [0x1801db82c]
mov rdx, r13
mov eax, dword [0x1801db820]
inc ecx
cmp dword [0x1801db828], eax
movaps xmmword [rsp + 0x170], xmm6
movss xmm6, dword [0x1801db7c8]
addss xmm6, dword [0x1801db7c4]
movaps xmmword [rsp + 0x160], xmm7
lea eax, [rcx + 1]
movaps xmmword [rsp + 0x150], xmm8
movaps xmmword [rsp + 0x140], xmm9
movss xmm9, dword [0x180135d94]
movaps xmmword [rsp + 0x130], xmm10
movss xmm10, dword [0x180135dd8]
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mov dword [0x1801db82c], ecx
movaps xmmword [rsp + 0x120], xmm11
movss xmm11, dword [0x180135dd4]
mulss xmm7, xmm9
subss xmm6, xmm11
addss xmm7, xmm10
jne 0x18003c91a
mov dword [0x1801db7e0], ecx
lea rcx, [rbp - 0x28]
call fcn.180018390
mov rcx, rax
mov byte [rsp + 0x58], sil
mov eax, dword [0x18015b09c]
mov byte [rsp + 0x50], sil
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 0x18003c954
lea rcx, [rbp - 0x28]
call fcn.180018390
mov rcx, rax
mov byte [rsp + 0x58], sil
mov eax, dword [0x18015b05c]
mov byte [rsp + 0x50], sil
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 0x18003c9ff
inc eax
lea rcx, [rbp - 0x28]
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mulss xmm7, xmm9
addss xmm7, xmm10
call fcn.18003c730
movss xmm0, dword [0x180135d84]
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 0x18003ca55
inc eax
lea rcx, [rbp - 8]
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mulss xmm7, xmm9
addss xmm7, xmm10
call fcn.18003c730
movss xmm0, dword [0x180135d60]
mov rcx, rax
mov eax, dword [0x18015b05c]
mov byte [rsp + 0x50], 1
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
jne 0x18003cb15
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
mov dword [rsp + 0x48], esi
addss xmm0, dword [0x180135dd0]
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x38], esi
movd xmm3, eax
cvtdq2ps xmm3, xmm3
cvtps2pd xmm0, xmm0
mulss xmm3, xmm9
subsd xmm0, qword [0x180135f60]
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
movss xmm1, dword [0x1801db7c8]
movabs rcx, 0xb56f0e1c89b9e069
addss xmm1, dword [0x1801db7c4]
mov eax, dword [0x1801db82c]
movsd xmm11, qword [0x180135f48]
inc eax
addss xmm1, dword [0x180135dcc]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm9
addss xmm0, xmm10
cvtps2pd xmm0, xmm0
addsd xmm0, xmm11
cvtpd2ps xmm7, xmm0
cvtps2pd xmm0, xmm1
addsd xmm0, qword [0x180135f00]
cvtpd2ps xmm8, xmm0
call fcn.1800b83e0
lea rcx, str.commonmenu
call fcn.1800b8400
call fcn.1800b8390
xorps xmm6, xmm6
cmp dword [rax], esi
jne 0x18003cbc7
movabs rcx, 0x59b2f61c9d01132b
call fcn.1800b83e0
lea rcx, str.commonmenu
call fcn.1800b8400
mov qword [rsp + 0x60], rsi
mov dword [rsp + 0x60], esi
mov rcx, qword [rsp + 0x60]
call fcn.1800b8400
call fcn.1800b8390
jmp 0x18003cc17
movss xmm0, dword [0x180135da0]
lea rdx, str.common_medal
movss xmm1, dword [0x180135d80]
lea rcx, str.commonmenu
mov dword [rsp + 0x50], 0xff
movaps xmm3, xmm7
mov dword [rsp + 0x48], esi
movaps xmm2, xmm8
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x38], esi
movss dword [rsp + 0x30], xmm6
movss dword [rsp + 0x28], xmm0
movss dword [rsp + 0x20], xmm1
call fcn.180033ea0
movzx eax, byte [rbx]
lea rdx, str.common_medal
movss xmm1, dword [0x1801db7c8]
test al, al
addss xmm1, dword [0x1801db7c4]
mov eax, dword [0x1801db82c]
mov ecx, 0x9d
mov dword [rsp + 0x50], 0xff
mov r10d, 0x50
cmovne r10d, ecx
mov r9d, 0x37
mov dword [rsp + 0x48], r10d
mov ecx, 0xd6
addss xmm1, dword [0x180135dcc]
cmovne r9d, ecx
mov r8d, 0xc8
mov dword [rsp + 0x40], r9d
mov ecx, 0x82
cmovne r8d, ecx
inc eax
mov dword [rsp + 0x38], r8d
lea rcx, str.commonmenu
movss dword [rsp + 0x30], xmm6
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm9
addss xmm0, xmm10
cvtps2pd xmm0, xmm0
addsd xmm0, xmm11
cvtpd2ps xmm3, xmm0
cvtps2pd xmm0, xmm1
movss xmm1, dword [0x180135d78]
addsd xmm0, qword [0x180135f00]
cvtpd2ps xmm2, xmm0
movss xmm0, dword [0x180135d9c]
movss dword [rsp + 0x28], xmm0
movss dword [rsp + 0x20], xmm1
call fcn.1800373f0
movaps xmm11, xmmword [rsp + 0x120]
movaps xmm10, xmmword [rsp + 0x130]
movaps xmm9, xmmword [rsp + 0x140]
movaps xmm8, xmmword [rsp + 0x150]
movaps xmm7, xmmword [rsp + 0x160]
movaps xmm6, xmmword [rsp + 0x170]
mov eax, dword [0x1801db820]
cmp dword [0x1801db828], eax
mov qword [rsp + 0x1d8], r12
jne 0x18003d0e0
mov r12d, dword [rbp + 0xe8]
or rbx, 0xffffffffffffffff
cmp byte [0x1801db902], 0
movabs rsi, 0x18f1bfaf88ac511b
je 0x18003cdb5
mov rcx, rsi
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
jg 0x18003cdb0
mov dword [rdi], r14d
jmp 0x18003ce26
sub eax, r12d
jmp 0x18003ce24
cmp byte [0x1801db901], 0
je 0x18003ce26
mov rcx, rsi
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, r14d
jl 0x18003ce21
mov dword [rdi], r15d
jmp 0x18003ce26
add eax, r12d
mov dword [rdi], eax
cmp byte [rbp + 0xf0], 0
je 0x18003cf09
cmp byte [0x1801db904], 0
je 0x18003ce9e
mov rcx, rsi
call fcn.1800b83e0
xor esi, esi
mov qword [rsp + 0x60], rsi
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], rsi
mov dword [rsp + 0x60], 1
mov rcx, qword [rsp + 0x60]
call fcn.1800b8400
call fcn.1800b8390
mov eax, dword [rdi]
cmp eax, r15d
jg 0x18003ce99
mov dword [rdi], r14d
jmp 0x18003cf09
sub eax, r12d
jmp 0x18003cf07
cmp byte [0x1801db903], 0
je 0x18003cf09
mov rcx, rsi
call fcn.1800b83e0
xor esi, esi
mov qword [rsp + 0x60], rsi
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], rsi
mov dword [rsp + 0x60], 1
mov rcx, qword [rsp + 0x60]
call fcn.1800b8400
call fcn.1800b8390
mov eax, dword [rdi]
cmp eax, r14d
jl 0x18003cf04
mov dword [rdi], r15d
jmp 0x18003cf09
add eax, r12d
mov dword [rdi], eax
mov eax, dword [0x1801db820]
cmp dword [0x1801db828], eax
jne 0x18003d0e0
cmp byte [0x1801db900], 0
je 0x18003cf31
mov rcx, qword [rsp + 0x68]
cmp byte [rcx], 0
sete al
mov byte [rcx], al
cmp byte [rbp + 0x100], 0
je 0x18003d0e0
mov ecx, 0x75
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8001
cmp ax, cx
je 0x18003cf67
mov edx, 0xcb
xor ecx, ecx
call fcn.18003b4d0
test eax, eax
je 0x18003d0e0
mov r8d, r14d
lea rdx, [0x18012e4dc]
lea rcx, [rbp - 8]
call fcn.1800b3b20
movdqa xmm0, xmmword [0x180136670]
lea rax, [rbp - 8]
movdqu xmmword [rbp - 0x38], xmm0
mov byte [rbp - 0x48], 0
mov r8, rbx
inc r8
cmp byte [rax + r8], 0
jne 0x18003cf92
lea rdx, [rbp - 8]
lea rcx, [rbp - 0x48]
call fcn.1800232e0
cmp qword [rbp - 0x30], 0x10
lea rsi, [rbp - 0x48]
mov r8d, dword [rdi]
lea rdx, [0x18012e4dc]
cmovae rsi, qword [rbp - 0x48]
lea rcx, [rbp - 0x28]
call fcn.1800b3b20
movdqa xmm0, xmmword [0x180136670]
lea rax, [rbp - 0x28]
movdqu xmmword [rbp - 0x58], xmm0
mov byte [rbp - 0x68], 0
mov r8, rbx
inc r8
cmp byte [rax + r8], 0
jne 0x18003cfe2
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x68]
call fcn.1800232e0
cmp qword [rbp - 0x50], 0x10
lea r14, [rbp - 0x68]
cmovae r14, qword [rbp - 0x68]
nop word [rax + rax]
cmp byte [rsi + rbx + 1], 0
lea rbx, [rbx + 1]
jne 0x18003d010
mov rdx, r13
lea rcx, [rsp + 0x78]
call fcn.180018390
mov rdx, rax
lea r9d, [rbx + 1]
mov r8, r14
mov ecx, 3
call fcn.18009dc30
mov rax, qword [rbp - 0x50]
cmp rax, 0x10
jb 0x18003d084
mov rcx, qword [rbp - 0x68]
inc rax
cmp rax, 0x1000
jb 0x18003d07f
test cl, 0x1f
jne 0x18003d148
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x18003d148
sub rcx, rax
sub rcx, 8
cmp rcx, 0x1f
ja 0x18003d148
mov rcx, rax
call fcn.180018a40
mov rax, qword [rbp - 0x30]
movdqa xmm0, xmmword [0x180136670]
mov byte [rbp - 0x68], 0
movdqu xmmword [rbp - 0x58], xmm0
cmp rax, 0x10
jb 0x18003d0d9
mov rcx, qword [rbp - 0x48]
inc rax
cmp rax, 0x1000
jb 0x18003d0d4
test cl, 0x1f
jne 0x18003d14e
mov rax, qword [rcx - 8]
cmp rax, rcx
jae 0x18003d14e
sub rcx, rax
sub rcx, 8
cmp rcx, 0x1f
ja 0x18003d14e
mov rcx, rax
call fcn.180018a40
mov qword [0x1801db908], rdi
mov rdi, qword [rsp + 0x70]
mov rdx, r13
mov rcx, rdi
call fcn.180018390
lea rdx, [r13 + 0x20]
lea rcx, [rdi + 0x20]
call fcn.180018390
movzx ecx, byte [r13 + 0x40]
lea rdx, [r13 + 0x48]
mov byte [rdi + 0x40], cl
lea rcx, [rdi + 0x48]
call fcn.180018390
lea rdx, [r13 + 0x68]
lea rcx, [rdi + 0x68]
call fcn.180018390
mov r12, qword [rsp + 0x1d8]
mov rax, rdi
mov rcx, qword [rbp + 0x18]
xor rcx, rsp
call fcn.1800bcd90
add rsp, 0x180
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1800c7f0c
int3
call fcn.1800c7f0c
int3