Function at 0x1004c500
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x10104a40]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
call fcn.1002d810
mov edi, eax
mov ecx, dword [edi + 0x90]
cmp dword [ecx + 0x34], 0
jle 0x1004c531
cmp dword [ecx + 0x14], 0
jne 0x1004c548
cmp dword [ecx + 0x18], 0
jne 0x1004c548
push 0x10a
push str.C:UsersKarosDesktopdownloaded_filesFRONTENDIMGUIimgui_impl_win32.cpp
push str.io.Fonts__IsBuilt_____Font_atlas_not_built__It_is_generally_built_by_the_renderer_backend._Missing_call_to_renderer__NewFrame___function__e.g._ImGui_ImplOpenGL3_NewFrame__._
call fcn.10081f72
add esp, 0xc
lea eax, [ebp - 0x14]
xorps xmm0, xmm0
push eax
push dword [0x101c8268]
movups xmmword [ebp - 0x14], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
movd xmm1, eax
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
lea eax, [ebp - 0x24]
cvtdq2ps xmm0, xmm0
push eax
movss dword [edi + 8], xmm1
movss dword [edi + 0xc], xmm0
xorps xmm0, xmm0
movlpd qword [ebp - 0x24], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [ebp - 0x24]
sub ecx, dword [0x101c8270]
mov edx, dword [ebp - 0x20]
sbb edx, dword [0x101c8274]
call fcn.10073f90
mov edx, dword [0x101c827c]
mov ecx, dword [0x101c8278]
movss dword [ebp - 0x18], xmm0
call fcn.10073f90
movss xmm1, dword [ebp - 0x18]
divss xmm1, xmm0
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
movss dword [edi + 0x10], xmm1
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov dword [0x101c8270], eax
mov dword [0x101c8274], ecx
call esi
shr eax, 0xf
and al, 1
push 0x10
mov byte [edi + 0xf4], al
call esi
shr eax, 0xf
and al, 1
push 0x12
mov byte [edi + 0xf5], al
call esi
shr eax, 0xf
and al, 1
mov byte [edi + 0xf7], 0
mov byte [edi + 0xf6], al
call fcn.1002d810
mov esi, eax
cmp byte [esi + 0x34f], 0
je 0x1004c661
cvttss2si ecx, dword [esi + 0xdc]
lea eax, [ebp - 0x1c]
push eax
push dword [0x101c8268]
mov dword [ebp - 0x1c], ecx
cvttss2si ecx, dword [esi + 0xe0]
mov dword [ebp - 0x18], ecx
call dword [sym.imp.USER32.dll_ClientToScreen]
test eax, eax
je 0x1004c661
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call dword [sym.imp.USER32.dll_SetCursorPos]
mov dword [esi + 0xdc], 0xff7fffff
mov dword [esi + 0xe0], 0xff7fffff
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test eax, eax
je 0x1004c6d7
mov ecx, dword [0x101c8268]
cmp eax, ecx
je 0x1004c695
push ecx
push eax
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
je 0x1004c6d7
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x1004c6d7
lea eax, [ebp - 0x2c]
push eax
push dword [0x101c8268]
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x1004c6d7
movd xmm0, dword [ebp - 0x2c]
movd xmm1, dword [ebp - 0x28]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [esi + 0xdc], xmm0
movss dword [esi + 0xe0], xmm1
cmp byte [edi + 0xa8], 0
pop edi
pop esi
je 0x1004c6e7
or eax, 0xffffffff
jmp 0x1004c6ec
call fcn.1002d8d0
cmp dword [0x101023c0], eax
je 0x1004c6fe
mov dword [0x101023c0], eax
call fcn.1004c9e0
call fcn.1004c720
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100734be
mov esp, ebp
pop ebp
ret