Function at 0x1800fbd00
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 8]
sub rsp, 0x108
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov rax, qword [0x1801c3938]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r12, r9
mov r13d, r8d
mov rsi, rdx
mov rbx, rcx
mov rdi, qword [rbp + 0x70]
mov r14, qword [rbp + 0x78]
xor r15d, r15d
mov qword [r14], r15
mov rax, qword [rcx]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rdi
call qword [rax + 0x68]
test al, al
jne 0x1800fbd94
lea rax, vtable.FB::WindowsEvent.0
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x40], r13d
mov dword [rsp + 0x44], r12d
mov dword [rsp + 0x48], edi
mov qword [rsp + 0x50], r14
mov rax, qword [rbx]
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je 0x1800fbd9b
mov al, 1
jmp 0x1800fc285
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
call qword [sym.imp.USER32.dll_GetKeyState]
movzx esi, ax
shr esi, 0xf
and esi, 1
mov ecx, SafeArrayGetLBound
call qword [sym.imp.USER32.dll_GetKeyState]
movzx r11d, ax
shr r11d, 0xe
and r11d, 2
add esi, r11d
mov ecx, SafeArrayGetLBound
call qword [sym.imp.USER32.dll_GetKeyState]
movzx r11d, ax
shr r11d, 0xd
and r11d, 4
add esi, r11d
cmp r13d, 0x113
ja 0x1800fbfc6
je 0x1800fbf92
add r13d, 0xfffffffb
cmp r13d, 0xfc
ja case.0x1800fbfe9.518
lea rcx, [0x180000000]
movzx eax, byte [rcx + r13 + 0xfc2cc]
mov edx, dword [rcx + rax*4 + 0xfc2a8]
add rdx, rcx
jmp rdx
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.USER32.dll_SetFocus]
mov qword [r14], 1
mov al, 1
jmp 0x1800fc285
mov qword [r14], 0x87
mov al, 1
jmp 0x1800fc285
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x60]
test al, al
je 0x1800fbe5d
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
mov rax, qword [rbx]
lea rdx, [rbp - 0x78]
mov rcx, rbx
call qword [rax + 0x38]
mov r11d, dword [rbp - 0x78]
sub dword [rbp - 0x70], r11d
mov eax, dword [rbp - 0x74]
sub dword [rbp - 0x6c], eax
mov qword [rbp - 0x78], r15
lea rax, vtable.FB::RefreshEvent.0
mov qword [rsp + 0x60], rax
mov rax, r15
mov qword [rsp + 0x68], rax
mov rax, qword [rbp - 0x70]
mov qword [rsp + 0x70], rax
mov rax, qword [rbx]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
jne 0x1800fbed4
lea rdx, [rbp - 0x60]
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.USER32.dll_BeginPaint]
lea rdx, [rbp - 0x60]
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.USER32.dll_EndPaint]
nop
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
mov edx, 0x7f00
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
jmp case.0x1800fbfe9.518
mov ecx, r12d
call fcn.1800e3750
mov dword [rbp - 0x70], eax
mov dword [rbp - 0x6c], r12d
mov dword [rbp - 0x68], r15d
lea rax, vtable.FB::KeyUpEvent.0
mov qword [rbp - 0x78], rax
mov rax, qword [rbx]
lea rdx, [rbp - 0x78]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je 0x1800fbf2a
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
mov ecx, r12d
call fcn.1800e3750
mov dword [rbp - 0x70], eax
mov dword [rbp - 0x6c], r12d
mov dword [rbp - 0x68], r15d
lea rax, vtable.FB::KeyDownEvent.0
mov qword [rbp - 0x78], rax
mov rax, qword [rbx]
lea rdx, [rbp - 0x78]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je 0x1800fbf65
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
lea rax, vtable.FB::ResizedEvent.0
mov qword [rbp - 0x78], rax
mov rax, qword [rbx]
lea rdx, [rbp - 0x78]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je 0x1800fbf8d
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
lea rax, vtable.FB::TimerEvent.0
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x68], r12d
mov qword [rsp + 0x70], rdi
mov rax, qword [rbx]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je 0x1800fbfc1
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
add r13d, 0xfffffe00
cmp r13d, 0xa
ja case.0x1800fbfe9.518
lea rcx, [0x180000000]
mov eax, dword [rcx + r13*4 + 0xfc3cc]
add rax, rcx
jmp rax
movsx eax, di
mov dword [rsp + 0x68], eax
shr rdi, 0x10
movsx eax, di
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x70], esi
mov dword [rsp + 0x78], r15d
lea rax, vtable.FB::MouseDownEvent.0
mov qword [rsp + 0x60], rax
mov rax, qword [rbx]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je 0x1800fc02b
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
movsx eax, di
mov dword [rsp + 0x68], eax
shr rdi, 0x10
movsx eax, di
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x70], esi
mov dword [rsp + 0x78], r15d
lea rax, vtable.FB::MouseDoubleClickEvent.0
mov qword [rsp + 0x60], rax
mov rax, qword [rbx]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je 0x1800fc070
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
movsx eax, di
mov dword [rsp + 0x68], eax
shr rdi, 0x10
movsx eax, di
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x70], esi
mov dword [rsp + 0x78], 1
lea rax, vtable.FB::MouseDownEvent.0
mov qword [rsp + 0x60], rax
mov rax, qword [rbx]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je 0x1800fc0b8
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
movsx eax, di
mov dword [rsp + 0x68], eax
shr rdi, 0x10
movsx eax, di
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x70], esi
mov dword [rsp + 0x78], 2
lea rax, vtable.FB::MouseDownEvent.0
mov qword [rsp + 0x60], rax
mov rax, qword [rbx]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je 0x1800fc100
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
movsx eax, di
mov dword [rsp + 0x68], eax
shr rdi, 0x10
movsx eax, di
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x70], esi
mov dword [rsp + 0x78], r15d
lea rax, vtable.FB::MouseUpEvent.0
mov qword [rsp + 0x60], rax
mov rax, qword [rbx]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je 0x1800fc145
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
movsx eax, di
mov dword [rsp + 0x68], eax
shr rdi, 0x10
movsx eax, di
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x70], esi
mov dword [rsp + 0x78], 1
lea rax, vtable.FB::MouseUpEvent.0
mov qword [rsp + 0x60], rax
mov rax, qword [rbx]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je 0x1800fc18d
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
movsx eax, di
mov dword [rsp + 0x68], eax
shr rdi, 0x10
movsx eax, di
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x70], esi
mov dword [rsp + 0x78], 2
lea rax, vtable.FB::MouseUpEvent.0
mov qword [rsp + 0x60], rax
mov rax, qword [rbx]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je 0x1800fc1d5
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
movsx eax, di
mov dword [rbp - 0x70], eax
shr rdi, 0x10
movsx eax, di
mov dword [rbp - 0x6c], eax
mov dword [rbp - 0x68], r15d
lea rax, vtable.FB::MouseMoveEvent.0
mov qword [rbp - 0x78], rax
mov rax, qword [rbx]
lea rdx, [rbp - 0x78]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je 0x1800fc20e
mov al, 1
jmp 0x1800fc285
jmp case.0x1800fbfe9.518
movsx eax, di
mov dword [rbp - 0x78], eax
shr rdi, 0x10
movsx eax, di
mov dword [rbp - 0x74], eax
lea rdx, [rbp - 0x78]
mov rcx, qword [rbx + 0x58]
call qword [sym.imp.USER32.dll_ScreenToClient]
mov r11d, dword [rbp - 0x78]
mov dword [rsp + 0x68], r11d
mov eax, dword [rbp - 0x74]
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x70], esi
lea rax, vtable.FB::MouseScrollEvent.0
mov qword [rsp + 0x60], rax
xorpd xmm0, xmm0
movsd qword [rsp + 0x78], xmm0
shr r12, 0x10
movsx eax, r12w
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [rbp - 0x80], xmm0
mov rax, qword [rbx]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx]
test al, al
je case.0x1800fbfe9.518
mov al, 1
jmp 0x1800fc285
xor al, al
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1800be9b0
add rsp, 0x108
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret