Function at 0x1400250bc
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov rax, qword [0x14016a040]
xor rax, rsp
mov qword [rsp + 0x48], rax
xor ebx, ebx
mov r14, r9
mov rsi, r8
mov ebp, edx
mov rdi, rcx
cmp byte [rcx + 0x91], bl
je 0x140025138
mov rcx, qword [rcx + 0x88]
mov rcx, qword [rcx + 0x48]
call fcn.1400b75c4
test al, al
je 0x140025138
cmp byte [0x140172476], bl
jne 0x140025138
mov rcx, qword [rdi + 0x88]
mov r9, r14
mov r8, rsi
mov byte [0x140172476], 1
mov edx, ebp
mov rcx, qword [rcx + 0x48]
call qword [sym.imp.USER32.dll_SendMessageW]
mov byte [0x140172476], bl
jmp 0x1400254a1
test sil, 8
jne 0x140025151
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
mov bpl, bl
test ax, ax
jns 0x140025154
mov bpl, 1
test sil, 0x20
jne 0x14002516d
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetKeyState]
mov r14b, bl
test ax, ax
jns 0x140025170
mov r14b, 1
test bpl, bpl
jne 0x140025494
mov al, sil
shr al, 1
test al, 1
jne 0x140025494
test sil, 4
jne 0x14002519f
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
mov r15b, bl
test ax, ax
jns 0x1400251a2
mov r15b, 1
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + 0x50]
sub eax, 4
je 0x1400251bd
sub eax, 1
je 0x1400251bd
mov r12b, 1
cmp eax, 1
jne 0x1400251c0
mov r12b, bl
test r14b, r14b
je 0x1400251cc
mov byte [0x1401722f1], 1
shr rsi, 0x10
test r15b, r15b
jne 0x140025278
test r12b, r12b
jne 0x140025278
mov rcx, qword [rdi]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x68]
ucomiss xmm0, dword [0x140156a7c]
jp 0x1400251fb
mov bpl, 1
je 0x1400251fe
mov bpl, bl
mov rcx, qword [rdi]
test rcx, rcx
je 0x14002521c
mov rax, qword [rcx]
call qword [rax + 0xf0]
test rax, rax
je 0x14002521c
mov ecx, dword [rax + 0x54]
cmp dword [rax + 0x64], ecx
jge 0x140025221
test bpl, bpl
je 0x140025278
movsx eax, si
mov ebx, 0x168
add eax, dword [rdi + 0x2fc]
mov dword [rdi + 0x2fc], eax
cmp eax, ebx
jl 0x140025256
mov rcx, qword [rdi]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0xd0]
add dword [rdi + 0x2fc], 0xfffffe98
jmp 0x14002549f
cmp eax, 0xfffffe98
jg 0x14002549f
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + Ordinal_203]
add dword [rdi + 0x2fc], ebx
jmp 0x14002549f
mov eax, dword [0x140172740]
test eax, eax
je 0x14002549f
jns 0x14002535d
mov rcx, qword [rdi]
test rcx, rcx
je 0x14002529f
mov rax, qword [rcx]
call qword [rax + 0xf0]
jmp 0x1400252a2
mov rax, rbx
test rax, rax
je 0x14002535d
mov rcx, qword [rdi + 0x18]
lea r8, [rsp + 0x28]
movzx edx, r15b
xorps xmm0, xmm0
xor edx, 1
mov dword [rsp + 0x40], ebx
movdqu xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x28], 0x1c
mov dword [rsp + 0x2c], 2
call qword [sym.imp.USER32.dll_GetScrollInfo]
mov ecx, dword [rsp + 0x38]
mov r8d, 0x78
movsx edx, si
call qword [sym.imp.KERNEL32.dll_MulDiv]
mov rcx, qword [rdi]
mov esi, eax
neg esi
test r15b, r15b
je 0x14002533a
test rcx, rcx
je 0x14002530e
mov rax, qword [rcx]
call qword [rax + 0xf0]
mov rbx, rax
mov r8d, dword [rbx + 0x50]
xor edx, edx
mov ecx, dword [rbx + 0x58]
sub r8d, dword [rbx + 0x60]
add ecx, esi
call fcn.1400b3ae0
cmp eax, dword [rbx + 0x58]
je 0x14002549f
mov edx, eax
mov rcx, rbx
call fcn.140033d18
jmp 0x14002549f
test rcx, rcx
je 0x14002534b
mov rax, qword [rcx]
call qword [rax + 0xf0]
mov rbx, rax
mov r8b, 1
mov edx, esi
mov rcx, rbx
call fcn.140033dfc
jmp 0x14002549f
mov rcx, qword [rdi + 0x18]
test r14b, r14b
je 0x140025386
test si, si
mov edx, 0x115
setle bl
xor r9d, r9d
lea r8, [rbx + 0x466]
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x14002549f
call fcn.1400b75c4
test al, al
je 0x1400253af
mov rdx, qword [rdi + 0x18]
lea rcx, [rsp + 0x20]
call fcn.1400b75fc
mov eax, dword [rdi + 0x2f0]
cmp dword [rsp + 0x20], eax
jle 0x1400253af
mov rcx, qword [rdi + 0x18]
jmp 0x140025366
mov rcx, qword [rdi + 0x18]
mov edx, 1
movsx eax, si
add dword [rdi + 0x2fc], eax
call qword [sym.imp.USER32.dll_GetScrollPos]
mov edx, dword [rdi + 0x2fc]
mov bpl, bl
movzx r14d, r15b
mov r13d, eax
xor r14d, 1
test edx, edx
jns 0x14002541e
mov ecx, dword [0x140172740]
neg ecx
cmp edx, ecx
jg 0x140025454
mov bpl, 1
mov rcx, qword [rdi + 0x18]
lea edx, [r14 + 0x114]
xor r9d, r9d
lea r8d, [r9 + 1]
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [0x140172740]
add dword [rdi + 0x2fc], eax
neg eax
cmp dword [rdi + 0x2fc], eax
jle 0x1400253ee
jmp 0x140025454
cmp edx, dword [0x140172740]
jl 0x140025454
mov bpl, 1
mov rcx, qword [rdi + 0x18]
lea edx, [r14 + 0x114]
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [0x140172740]
sub dword [rdi + 0x2fc], eax
cmp dword [rdi + 0x2fc], eax
jge 0x140025429
test r15b, r15b
jne 0x14002549f
test r12b, r12b
je 0x14002549f
test bpl, bpl
je 0x14002549f
mov rcx, qword [rdi + 0x18]
mov edx, 1
call qword [sym.imp.USER32.dll_GetScrollPos]
cmp eax, r13d
jne 0x14002549f
mov rcx, qword [rdi]
mov rax, qword [rcx]
test si, si
jle 0x14002548c
mov dl, 1
call qword [rax + 0xd0]
jmp 0x14002549f
call qword [rax + Ordinal_203]
jmp 0x14002549f
mov rdx, rsi
mov rcx, rdi
call fcn.140024f94
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400f44c0
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret