Function at 0x14004d7c0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x148
mov rax, qword [0x1403f4280]
xor rax, rsp
mov qword [rsp + 0x130], rax
cmp qword [0x1403f52f0], 0
jne 0x14004d7ef
jmp 0x14004dc7a
cmp qword [0x1403f52e8], 0
jne 0x14004d7fe
jmp 0x14004dc7a
movzx eax, byte [0x1403f526c]
test eax, eax
je 0x14004d81a
mov ecx, dword [0x1403f5270]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
jne 0x14004d84d
movzx eax, byte [0x1403f5310]
test eax, eax
je 0x14004d841
mov rax, qword [0x1403f52e8]
add rax, 0x2c
movss xmm1, dword [0x1403f530c]
mov rcx, rax
call fcn.14004d2c0
nop
mov byte [0x1403f5310], 0
jmp 0x14004dc7a
movzx eax, byte [0x1403f5310]
test eax, eax
jne 0x14004d890
mov rax, qword [0x1403f52e8]
add rax, 0x2c
mov rcx, rax
call fcn.14004d1a0
movss dword [0x1403f530c], xmm0
mov rax, qword [0x1403f52e8]
add rax, 0x2c
xorps xmm1, xmm1
mov rcx, rax
call fcn.14004d2c0
mov byte [0x1403f5310], 1
cvtsi2ss xmm0, dword [0x1403f5274]
divss xmm0, dword [0x14011564c]
movss dword [rsp + 0x40], xmm0
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x14004d8ca
movss xmm0, dword [rsp + 0x40]
mulss xmm0, dword [0x140118114]
movss dword [rsp + 0x40], xmm0
lea rax, [rsp + 0x110]
lea rcx, [0x1403f5300]
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x14004d989
movss xmm2, dword [rsp + 0x40]
lea rdx, [rsp + 0x70]
mov rcx, qword [rsp + 0x160]
call fcn.14004d370
movss xmm0, dword [rsp + 0x110]
addss xmm0, dword [rax]
movss dword [rsp + 0x110], xmm0
movss xmm2, dword [rsp + 0x40]
lea rdx, [rsp + 0x7c]
mov rcx, qword [rsp + 0x160]
call fcn.14004d370
movss xmm0, dword [rsp + 0x114]
addss xmm0, dword [rax + 4]
movss dword [rsp + 0x114], xmm0
movss xmm2, dword [rsp + 0x40]
lea rdx, [rsp + 0x88]
mov rcx, qword [rsp + 0x160]
call fcn.14004d370
movss xmm0, dword [rsp + 0x118]
addss xmm0, dword [rax + 8]
movss dword [rsp + 0x118], xmm0
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x14004da32
movss xmm2, dword [rsp + 0x40]
lea rdx, [rsp + 0x94]
mov rcx, qword [rsp + 0x160]
call fcn.14004d370
movss xmm0, dword [rsp + 0x110]
subss xmm0, dword [rax]
movss dword [rsp + 0x110], xmm0
movss xmm2, dword [rsp + 0x40]
lea rdx, [rsp + 0xa0]
mov rcx, qword [rsp + 0x160]
call fcn.14004d370
movss xmm0, dword [rsp + 0x114]
subss xmm0, dword [rax + 4]
movss dword [rsp + 0x114], xmm0
movss xmm2, dword [rsp + 0x40]
lea rdx, [rsp + 0xac]
mov rcx, qword [rsp + 0x160]
call fcn.14004d370
movss xmm0, dword [rsp + 0x118]
subss xmm0, dword [rax + 8]
movss dword [rsp + 0x118], xmm0
movss xmm3, dword [0x140115638]
xorps xmm2, xmm2
xorps xmm1, xmm1
lea rcx, [rsp + 0xb8]
call fcn.14004d320
mov qword [rsp + 0x48], rax
mov r8, qword [rsp + 0x48]
lea rdx, [rsp + 0x120]
mov rcx, qword [rsp + 0x160]
call fcn.14004d3e0
nop
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x14004db16
movss xmm2, dword [rsp + 0x40]
lea rdx, [rsp + 0xc4]
lea rcx, [rsp + 0x120]
call fcn.14004d370
movss xmm0, dword [rsp + 0x110]
subss xmm0, dword [rax]
movss dword [rsp + 0x110], xmm0
movss xmm2, dword [rsp + 0x40]
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0x120]
call fcn.14004d370
movss xmm0, dword [rsp + 0x114]
subss xmm0, dword [rax + 4]
movss dword [rsp + 0x114], xmm0
movss xmm2, dword [rsp + 0x40]
lea rdx, [rsp + 0xdc]
lea rcx, [rsp + 0x120]
call fcn.14004d370
movss xmm0, dword [rsp + 0x118]
subss xmm0, dword [rax + 8]
movss dword [rsp + 0x118], xmm0
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x14004dbbf
movss xmm2, dword [rsp + 0x40]
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0x120]
call fcn.14004d370
movss xmm0, dword [rsp + 0x110]
addss xmm0, dword [rax]
movss dword [rsp + 0x110], xmm0
movss xmm2, dword [rsp + 0x40]
lea rdx, [rsp + 0xf4]
lea rcx, [rsp + 0x120]
call fcn.14004d370
movss xmm0, dword [rsp + 0x114]
addss xmm0, dword [rax + 4]
movss dword [rsp + 0x114], xmm0
movss xmm2, dword [rsp + 0x40]
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x120]
call fcn.14004d370
movss xmm0, dword [rsp + 0x118]
addss xmm0, dword [rax + 8]
movss dword [rsp + 0x118], xmm0
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x14004dbe7
movss xmm0, dword [rsp + 0x118]
addss xmm0, dword [rsp + 0x40]
movss dword [rsp + 0x118], xmm0
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x14004dc0f
movss xmm0, dword [rsp + 0x118]
subss xmm0, dword [rsp + 0x40]
movss dword [rsp + 0x118], xmm0
lea rax, [rsp + 0x50]
lea rcx, [rsp + 0x110]
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x60]
lea rcx, [rsp + 0x110]
mov rdi, rax
mov rsi, rcx
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov byte [rsp + 0x30], 0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, qword [0x1403f52f8]
mov rdx, qword [0x1403f52f0]
lea rcx, [0x1403f4e80]
call fcn.14005f690
nop
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.140100260
add rsp, 0x148
pop rdi
pop rsi
ret