Function at 0x14004e990
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
mov rax, qword [0x1400fe040]
xor rax, rsp
mov qword [rbp - 0x20], rax
mov r15, rdx
mov r14, rcx
mov r12, qword [0x140125550]
mov rax, qword [r12 + 0x3ec8]
mov byte [rax + 0xb8], 1
mov r13, qword [r12 + 0x3ec8]
cmp byte [r13 + 0xbb], 0
jne 0x14004f124
movss xmm1, dword [r13 + 0x250]
cmp qword [r13 + 0x1a8], 0
jne 0x14004ea3e
cmp qword [r12 + 0x4b08], 0
je 0x14004ea47
movss xmm1, dword [r13 + 0x220]
subss xmm1, dword [r13 + 0x100]
subss xmm1, dword [0x1400ec554]
xorps xmm12, xmm12
xorps xmm0, xmm0
call fcn.140015030
xor esi, esi
mov edx, esi
movsxd rax, dword [r14]
cmp eax, 0x7b
ja 0x14004ea7b
lea rdx, [0x1400e9910]
mov rdx, qword [rdx + rax*8]
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
movdqa xmm1, xmmword [0x1400ec6f0]
movdqu xmmword [rbp - 0x78], xmm1
mov byte [rsp + 0x78], sil
mov rdi, 0xffffffffffffffff
cmp byte [r15], 0
je 0x14004eab1
mov r8d, 3
lea rdx, [0x1400ebcf8]
jmp 0x14004eada
test rdx, rdx
jne 0x14004eac5
mov r8d, 0xa
lea rdx, str.Select_Key
jmp 0x14004eada
mov r8, rdi
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x14004ead0
lea rcx, [rsp + 0x78]
call fcn.140058710
lea rax, [rsp + 0x78]
cmp qword [rbp - 0x70], 0xf
cmova rax, qword [rsp + 0x78]
mov rbx, qword [0x140125550]
movss xmm13, dword [0x1400ec660]
test rax, rax
jne 0x14004eb0f
movaps xmm0, xmm12
jmp 0x14004eb5a
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm13
movss xmm3, dword [0x1400ec644]
movss xmm2, dword [rbx + 0x3c28]
lea rdx, [rsp + 0x58]
mov rcx, qword [rbx + 0x3c20]
call fcn.14002d860
movss xmm0, dword [rsp + 0x58]
addss xmm0, dword [0x1400ec498]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm8, dword [r12 + 0x3830]
addss xmm8, xmm8
addss xmm8, xmm0
addss xmm8, dword [0x1400ec588]
mov rcx, qword [rbx + 0x3ec8]
movss xmm10, dword [rcx + 0x250]
cmp qword [rcx + 0x1a8], 0
jne 0x14004eb9b
cmp qword [rbx + 0x4b08], 0
je 0x14004eba4
movss xmm10, dword [rcx + 0x220]
movss xmm1, dword [r13 + 0x104]
movss dword [rsp + 0x54], xmm1
subss xmm10, dword [rcx + 0x100]
addss xmm10, dword [r13 + 0x100]
subss xmm10, xmm8
movaps xmm7, xmm1
movss xmm11, dword [0x1400ec5a8]
addss xmm7, xmm11
movaps xmm9, xmm10
addss xmm9, xmm8
movaps xmm6, xmm9
unpcklps xmm6, xmm7
movaps xmm2, xmm7
subss xmm2, xmm1
movaps xmm0, xmm9
subss xmm0, xmm10
movss dword [rsp + 0x58], xmm0
movss dword [rsp + 0x5c], xmm2
movss xmm1, dword [r12 + 0x3834]
lea rcx, [rsp + 0x58]
call fcn.140014d10
mov r10, qword [0x140125550]
mov rbx, qword [r10 + 0x3ec8]
mov dword [r10 + 0x4764], esi
movaps xmm0, xmm10
shufps xmm0, xmm0, 0xe1
movss xmm1, dword [rsp + 0x54]
movss xmm0, xmm1
shufps xmm0, xmm0, 0xe1
unpcklpd xmm0, xmm6
movups xmmword [rsp + 0x58], xmm0
movups xmmword [r10 + 0x4770], xmm0
movaps xmm0, xmm10
shufps xmm0, xmm0, 0xe1
movss xmm0, xmm1
shufps xmm0, xmm0, 0xc6
movss xmm0, xmm9
shufps xmm0, xmm0, 0x27
movss xmm0, xmm7
shufps xmm0, xmm0, 0x39
movups xmmword [rsp + 0x68], xmm0
movups xmmword [r10 + 0x4780], xmm0
mov eax, dword [r10 + 0x4748]
mov dword [r10 + 0x4768], eax
mov dword [r10 + 0x476c], esi
mov dword [r10 + 0x4750], esi
comiss xmm7, dword [rbx + 0x23c]
jbe 0x14004ecde
movss xmm0, dword [rbx + 0x244]
comiss xmm0, xmm1
jbe 0x14004ecde
comiss xmm9, dword [rbx + 0x238]
jbe 0x14004ecde
movss xmm0, dword [rbx + 0x240]
comiss xmm0, xmm10
jbe 0x14004ecde
mov r11d, 0x200
mov dword [r10 + 0x476c], r11d
jmp 0x14004ecef
cmp byte [r10 + 0x5c50], 0
je 0x14004f0e5
mov r11d, esi
mov r8b, 1
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x58]
call fcn.140012f30
test al, al
je 0x14004ed10
or r11d, 1
mov dword [r10 + 0x476c], r11d
cmp byte [r10 + 0x48e7], 0
je 0x14004ed47
cmp byte [r10 + 0x48e6], 0
jne 0x14004ed47
test byte [r10 + 0x4768], 4
je 0x14004ed36
xor sil, sil
jmp 0x14004ee2e
mov eax, dword [r10 + 0x48b0]
test eax, eax
xor sil, sil
jmp 0x14004ee2e
test r8b, r11b
jne 0x14004ed54
xor sil, sil
jmp 0x14004ee2e
cmp qword [r10 + 0x3ed0], rbx
je 0x14004ed65
xor sil, sil
jmp 0x14004ee2e
mov eax, dword [r10 + 0x3f28]
test eax, eax
je 0x14004ed87
cmp byte [r10 + 0x3f35], 0
jne 0x14004ed87
cmp eax, dword [rbx + 0x7c]
je 0x14004ed87
xor sil, sil
jmp 0x14004ee2e
mov rcx, qword [r10 + 0x48a8]
test rcx, rcx
je 0x14004edf3
mov rcx, qword [rcx + 0x378]
test rcx, rcx
je 0x14004edf3
cmp byte [rcx + 0xb7], 0
je 0x14004edf3
mov rax, qword [rbx + 0x378]
cmp rcx, rax
je 0x14004edf3
mov edx, dword [rcx + 0x14]
bt edx, 0x1b
jb 0x14004edc3
bt edx, 0x1a
jae 0x14004edf3
cmp qword [rax + 0x378], rcx
je 0x14004edf3
nop dword [rax]
cmp rax, rcx
je 0x14004edf3
mov rax, qword [rax + 0x370]
test rax, rax
jne 0x14004edd0
test dword [r10 + 0x4768], 0x100
jne 0x14004edf3
xor sil, sil
jmp 0x14004ee2e
test byte [r10 + 0x4768], 4
je 0x14004ee02
xor sil, sil
jmp 0x14004ee2e
cmp esi, dword [rbx + 0x7c]
jne 0x14004ee15
cmp byte [rbx + 0xb8], 0
je 0x14004ee15
xor sil, sil
jmp 0x14004ee2e
movzx esi, r8b
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.140012e80
test al, al
mov byte [rsp + 0x50], sil
jne 0x14004ee33
mov byte [rsp + 0x50], 0
cmp byte [r15], 0
je 0x14004ef46
mov ebx, 8
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004ee5b
inc ebx
cmp ebx, 0xa5
jle 0x14004ee42
jmp 0x14004ee62
mov dword [r14], ebx
mov byte [r15], 0
xor r9d, r9d
xor r10d, r10d
mov r11, qword [0x140125550]
nop
cmp byte [r10 + r11 + 0xe10], 0
je 0x14004eecb
lea eax, [r9 + 0x81]
cmp eax, 0x8b
jbe 0x14004eeb6
cmp r9d, 0xd7f
je 0x14004eeb6
cmp r9d, 0x1d7f
je 0x14004eeb6
cmp r9d, 0x3d7f
je 0x14004eeb6
cmp r9d, 0x7d7f
je 0x14004eeb6
cmp r9d, 0x57f
jne 0x14004eed9
lea edx, [r9 + 0x281]
mov rcx, r11
call fcn.140004910
cmp byte [rax + 8], 0
je 0x14004eed9
inc r9d
inc r10
cmp r10, 5
jl 0x14004ee70
jmp 0x14004ef25
test r9d, r9d
je 0x14004ef1a
sub r9d, 1
je 0x14004ef11
sub r9d, 1
je 0x14004ef08
sub r9d, 1
je 0x14004eeff
cmp r9d, 1
jne 0x14004ef21
mov dword [r14], 6
jmp 0x14004ef21
mov dword [r14], 5
jmp 0x14004ef21
mov dword [r14], 4
jmp 0x14004ef21
mov dword [r14], 2
jmp 0x14004ef21
mov dword [r14], 1
mov byte [r15], 0
xor edx, edx
mov ecx, 0x20e
mov r8d, 1
call fcn.140012d30
test al, al
je 0x14004ef46
mov dword [r14], 0
mov byte [r15], 0
lea r8, [rsp + 0x78]
cmp qword [rbp - 0x70], 0xf
cmova r8, qword [rsp + 0x78]
mov edx, 0x40
lea rcx, [rbp - 0x60]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
mov rax, qword [0x140125550]
mov qword [rsp + 0x30], 0
lea rcx, [rbp - 0x60]
mov qword [rsp + 0x28], rcx
movss dword [rsp + 0x20], xmm13
movss xmm3, dword [0x1400ec644]
movss xmm2, dword [rax + 0x3c28]
lea rdx, [rsp + 0x58]
mov rcx, qword [rax + 0x3c20]
call fcn.14002d860
movss xmm0, dword [rsp + 0x58]
addss xmm0, dword [0x1400ec498]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
subss xmm11, dword [rsp + 0x5c]
mulss xmm11, dword [0x1400ec46c]
addss xmm11, dword [rsp + 0x54]
subss xmm8, xmm1
mulss xmm8, dword [0x1400ec46c]
addss xmm8, xmm10
movss dword [rsp + 0x58], xmm8
movss dword [rsp + 0x5c], xmm11
mov r8, qword [r13 + 0x298]
movss xmm2, dword [r12 + 0x37f4]
movss dword [rsp + 0x74], xmm2
lea rcx, [rsp + 0x68]
test sil, sil
je 0x14004f032
mov dword [rsp + 0x68], 0x3f47ae14
mov dword [rsp + 0x6c], 0x3f16872b
mov dword [rsp + 0x70], 0x3f800000
jmp 0x14004f04a
mov dword [rsp + 0x68], 0x3eb4b4b5
mov dword [rsp + 0x6c], 0x3eb4b4b5
mov dword [rsp + 0x70], 0x3eb4b4b5
call fcn.140005a70
mov r9d, eax
test eax, 0xff000000
je 0x14004f0c9
lea rax, [rbp - 0x60]
nop dword [rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x14004f060
lea rcx, [rbp - 0x60]
add rcx, rdi
lea rax, [rbp - 0x60]
cmp rax, rcx
je 0x14004f0c9
mov rax, qword [r8 + 0x38]
movups xmm0, xmmword [r8 + 0x88]
movups xmmword [rsp + 0x68], xmm0
mov byte [rsp + 0x48], 0
movss dword [rsp + 0x40], xmm12
mov qword [rsp + 0x38], rcx
lea rcx, [rbp - 0x60]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], r9d
lea r9, [rsp + 0x58]
movss xmm2, dword [rax + 0x10]
mov rdx, r8
mov rcx, qword [rax + 8]
call fcn.14002da80
cmp byte [rsp + 0x50], 0
je 0x14004f0e5
cmp byte [r15], 0
jne 0x14004f0e5
mov ecx, 0x2bc
call qword [sym.imp.KERNEL32.dll_Sleep]
mov byte [r15], 1
mov rdx, qword [rbp - 0x70]
cmp rdx, 0xf
jbe 0x14004f124
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004f11f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14004f11f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400c3a64
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.1400c37c0
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret