Function at 0x140049b30
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rdi
sub rsp, 0x48
mov qword [rsp + 0x60], rbp
mov rbx, rcx
mov qword [rsp + 0x68], rsi
lea rcx, [0x140183b40]
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x30], r15
call fcn.1400169f0
mov ecx, 0x17
mov edi, eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
xor r15d, r15d
mov esi, 1
test eax, eax
mov ecx, esi
setne r15b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r12d, 0x8000
lea r13d, [rsi + 2]
test r12w, ax
jne 0x140049bf6
test r15d, r15d
mov qword [rsp + 0x38], r14
mov eax, r13d
mov ebp, esi
cmove eax, esi
movzx r14d, al
movzx eax, byte [rbx + 0x74]
lea ecx, [r14 - 1]
shl ebp, cl
test eax, ebp
je 0x140049bdc
btr eax, ecx
mov rcx, qword [rbx]
mov byte [rbx + 0x74], al
call fcn.1400a0f50
lea rcx, str.SDL_MOUSE_FOCUS_CLICKTHROUGH
call fcn.140048f70
xor edx, edx
mov rcx, rax
call fcn.140049010
test eax, eax
je 0x140049bf1
test edi, ebp
je 0x140049bf1
mov rcx, qword [rbx]
movzx r9d, r14b
xor r8d, r8d
xor edx, edx
call fcn.140017220
mov r14, qword [rsp + 0x38]
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test r12w, ax
jne 0x140049c5d
test r15d, r15d
mov eax, esi
cmove eax, r13d
movzx ebp, al
movzx eax, byte [rbx + 0x74]
lea ecx, [rbp - 1]
shl esi, cl
test eax, esi
je 0x140049c48
btr eax, ecx
mov rcx, qword [rbx]
mov byte [rbx + 0x74], al
call fcn.1400a0f50
lea rcx, str.SDL_MOUSE_FOCUS_CLICKTHROUGH
call fcn.140048f70
xor edx, edx
mov rcx, rax
call fcn.140049010
test eax, eax
je 0x140049c5d
test edi, esi
je 0x140049c5d
mov rcx, qword [rbx]
movzx r9d, bpl
xor r8d, r8d
xor edx, edx
call fcn.140017220
mov ecx, 4
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x60]
test r12w, ax
jne 0x140049cc9
movzx eax, byte [rbx + 0x74]
test al, 2
je 0x140049cb3
mov rcx, qword [rbx]
btr eax, 1
mov byte [rbx + 0x74], al
call fcn.1400a0f50
lea rcx, str.SDL_MOUSE_FOCUS_CLICKTHROUGH
call fcn.140048f70
xor edx, edx
mov rcx, rax
call fcn.140049010
test eax, eax
je 0x140049cc9
test dil, 2
je 0x140049cc9
mov rcx, qword [rbx]
mov r9b, 2
xor r8d, r8d
xor edx, edx
call fcn.140017220
mov ecx, 5
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test r12w, ax
jne 0x140049d21
movzx eax, byte [rbx + 0x74]
test al, 8
je 0x140049d0b
mov rcx, qword [rbx]
btr eax, 3
mov byte [rbx + 0x74], al
call fcn.1400a0f50
lea rcx, str.SDL_MOUSE_FOCUS_CLICKTHROUGH
call fcn.140048f70
xor edx, edx
mov rcx, rax
call fcn.140049010
test eax, eax
je 0x140049d21
test dil, 8
je 0x140049d21
mov rcx, qword [rbx]
mov r9b, 4
xor r8d, r8d
xor edx, edx
call fcn.140017220
mov ecx, 6
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test r12w, ax
mov r12, qword [rsp + 0x70]
jne 0x140049d7e
movzx eax, byte [rbx + 0x74]
test al, 0x10
je 0x140049d68
mov rcx, qword [rbx]
btr eax, 4
mov byte [rbx + 0x74], al
call fcn.1400a0f50
lea rcx, str.SDL_MOUSE_FOCUS_CLICKTHROUGH
call fcn.140048f70
xor edx, edx
mov rcx, rax
call fcn.140049010
test eax, eax
je 0x140049d7e
test dil, 0x10
je 0x140049d7e
mov rcx, qword [rbx]
mov r9b, 5
xor r8d, r8d
xor edx, edx
call fcn.140017220
mov qword [rbx + 0x50], 0xffffffffffffffff
add rsp, 0x48
pop rdi
pop rbx
ret