Function at 0x1400c4af0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x80
mov rax, qword [0x140129718]
xor rax, rsp
mov qword [rsp + 0x70], rax
xor ebp, ebp
mov r14, r9
mov rbx, r8
mov esi, edx
mov rdi, rcx
cmp edx, 1
jne 0x1400c4b89
mov rcx, qword [rcx + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
mov r8, qword [rdi + 8]
mov rcx, rax
mov rdx, qword [rdi + 0x28]
call fcn.1400939d0
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
mov rcx, rax
call fcn.140095520
test al, al
je 0x1400c4b6e
call qword [sym.imp.USER32.dll_GetCaretBlinkTime]
mov rcx, qword [rdi + 8]
lea edx, [rsi + 0x13]
mov r8d, eax
xor r9d, r9d
call qword [sym.imp.USER32.dll_SetTimer]
mov r9, r14
mov r8, rbx
mov edx, esi
mov rcx, rdi
call fcn.1400a6020
mov rbp, rax
mov rax, rbp
jmp 0x1400c504b
cmp esi, 8
jne 0x1400c4c33
mov rcx, qword [rcx + 8]
mov edx, esi
call qword [sym.imp.USER32.dll_DefWindowProcW]
mov rcx, qword [rdi + 0x28]
mov rsi, rax
mov rax, qword [rcx]
call qword [rax + 0x100]
mov rcx, rax
call fcn.140094f50
cmp rbx, rax
je 0x1400c4be4
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
mov rcx, rax
call fcn.140094f50
mov rcx, rax
mov r9, r14
mov r8, rbx
mov edx, 8
call qword [sym.imp.USER32.dll_SendMessageW]
xor r9d, r9d
xor r8d, r8d
mov rcx, rdi
lea edx, [r9 + 0x10]
call fcn.1400a60c0
mov rcx, qword [rdi + 0x28]
test rcx, rcx
je 0x1400c4c28
call fcn.1400b21f0
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
mov rdx, qword [rdi + 8]
mov rcx, rax
call fcn.1400990d0
mov rax, qword [rdi + 0x28]
mov qword [rax + 0x888], rbp
mov rbp, rsi
mov rax, rsi
jmp 0x1400c504b
cmp esi, 0x2111
jne 0x1400c4c9f
mov rax, rbx
mov ecx, 0x300
shr rax, 0x10
cmp ax, cx
jne 0x1400c4c68
lea rax, [rsp + 0x40]
mov edx, esi
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1400c53f0
mov rbp, rax
jmp 0x1400c504b
mov ecx, 0x400
cmp ax, cx
jne 0x1400c4b81
mov rcx, qword [rdi + 8]
lea rdx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, qword [rdi + 8]
lea rdx, [rsp + 0x60]
xor r8d, r8d
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rax, rbp
jmp 0x1400c504b
cmp esi, 0x100
jne 0x1400c4db6
cmp bx, 0xd
jne 0x1400c4ceb
mov rcx, qword [rcx + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
mov rdx, qword [rdi + 0x28]
lea r8, str.return
mov byte [rsp + 0x30], 1
mov rcx, rax
mov byte [rsp + 0x28], bpl
xor r9d, r9d
mov qword [rsp + 0x20], rbp
call fcn.140099730
mov rax, rbp
jmp 0x1400c504b
cmp bx, 9
jne 0x1400c4d75
mov rcx, qword [rcx + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
call fcn.140095450
mov rcx, qword [rdi + 0x28]
mov rdx, qword [rcx]
test al, al
jne 0x1400c4d45
call qword [rdx + 0x100]
mov rdx, qword [rdi + 0x28]
lea r8, [0x1400fb160]
mov byte [rsp + 0x30], 1
mov rcx, rax
mov byte [rsp + 0x28], bpl
xor r9d, r9d
mov qword [rsp + 0x20], rbp
call fcn.140099730
mov rax, rbp
jmp 0x1400c504b
call qword [rdx + 0x100]
mov ecx, InitCommonControls
mov rbx, rax
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
mov rcx, rbx
setns dl
xor r9d, r9d
xor r8d, r8d
call fcn.140099f10
mov rax, rbp
jmp 0x1400c504b
cmp bx, 0x14
jne 0x1400c4b6e
mov rcx, qword [rcx + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
mov rdx, qword [rdi + 0x28]
lea r8, str.capital
mov byte [rsp + 0x30], 1
mov rcx, rax
mov byte [rsp + 0x28], bpl
xor r9d, r9d
mov qword [rsp + 0x20], rbp
call fcn.140099730
jmp 0x1400c4b6e
cmp esi, 0x2133
je 0x1400c4ef7
cmp esi, 0x2138
je 0x1400c4ef7
cmp esi, 0xf
jne 0x1400c4e12
mov rcx, qword [rcx + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
mov rcx, rax
call fcn.140095520
test al, al
je 0x1400c4b6e
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
mov r8, qword [rdi + 8]
mov rcx, rax
mov rdx, qword [rdi + 0x28]
call fcn.1400939d0
jmp 0x1400c4b6e
cmp esi, 0x317
jne 0x1400c4ec7
mov rcx, qword [rcx + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
mov rcx, rax
call fcn.140095520
test al, al
je 0x1400c4b6e
mov r9, r14
mov r8, rbx
mov edx, esi
mov rcx, rdi
call fcn.1400a6020
mov rcx, qword [rdi + 0x28]
mov rsi, rax
mov rdx, qword [rcx]
call qword [rdx + 0x2a8]
test al, al
je 0x1400c4ebf
cmp byte [rdi + 0x39], bpl
je 0x1400c4ebf
mov rcx, qword [rdi + 8]
lea rdx, [rsp + 0x60]
call qword [sym.imp.USER32.dll_GetClientRect]
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_GetCaretPos]
mov rax, qword [rsp + 0x40]
lea rdx, [rsp + 0x50]
mov ecx, dword [rsp + 0x44]
mov r9d, 0xff000000
mov dword [rsp + 0x50], eax
mov r8d, 1
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x6c]
sub eax, dword [rsp + 0x64]
add eax, ecx
mov dword [rsp + 0x54], ecx
mov rcx, rbx
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x20], ebp
call fcn.1400a2180
mov rax, rsi
jmp 0x1400c504b
cmp esi, 0x113
jne 0x1400c4b6e
cmp rbx, 0x14
jne 0x1400c4b6e
cmp byte [rcx + 0x39], bpl
sete al
mov byte [rcx + 0x39], al
mov rcx, qword [rcx + 0x28]
call fcn.1400b21f0
xor eax, eax
jmp 0x1400c504b
mov rcx, qword [rcx + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
mov rcx, rax
call fcn.140095520
test al, al
je 0x1400c4f46
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
mov rcx, rax
call fcn.140095540
test al, al
jne 0x1400c4f46
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
mov r8, qword [rdi + 8]
mov rcx, rax
mov rdx, qword [rdi + 0x28]
call fcn.1400939d0
mov rax, qword [rdi + 0x28]
mov esi, dword [rax + 0x928]
cmp esi, 0xffffffff
je 0x1400c4ef0
mov edx, 1
mov rcx, rbx
call qword [sym.imp.GDI32.dll_SetBkMode]
mov rcx, qword [rdi + 0x28]
call fcn.1400b6a30
mov ecx, eax
movzx edx, ax
shr ecx, 0x10
and edx, 0xffffff00
movzx r8d, cl
mov rcx, rbx
movzx eax, al
or edx, r8d
shl eax, 0x10
or edx, eax
call qword [sym.imp.GDI32.dll_SetTextColor]
mov rax, qword [rdi + 0x30]
cmp esi, 0xff000000
jae 0x1400c501c
test rax, rax
je 0x1400c4fac
mov rcx, rax
call qword [sym.imp.GDI32.dll_DeleteObject]
mov rcx, qword [rdi + 0x28]
mov rax, qword [rcx]
call qword [rax + 0x100]
mov r8, qword [rdi + 8]
lea rdx, [rsp + 0x60]
mov rcx, rax
call fcn.140094ed0
mov rbx, qword [rdi + 0x28]
movups xmm0, xmmword [rsp + 0x60]
mov rcx, rbx
mov rax, qword [rbx]
movups xmmword [rsp + 0x50], xmm0
call qword [rax + 0x100]
movups xmm0, xmmword [rsp + 0x50]
mov r9d, esi
lea rdx, [rsp + 0x50]
mov r8, rbx
mov rcx, rax
movaps xmmword [rsp + 0x50], xmm0
call fcn.1400a2e30
mov rcx, rax
mov rbx, rax
call qword [sym.imp.GDI32.dll_CreatePatternBrush]
mov rcx, rbx
mov qword [rdi + 0x30], rax
call qword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x1400c5047
test rax, rax
jne 0x1400c5047
mov eax, esi
movzx ecx, si
shr eax, 0x10
and ecx, 0xffffff00
movzx edx, al
movzx eax, sil
or ecx, edx
shl eax, 0x10
or ecx, eax
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov qword [rdi + 0x30], rax
mov rax, qword [rdi + 0x30]
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1400dc960
add rsp, 0x80
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret