Function at 0x1400f5ca0
Capabilities:
Log keystrokes via polling

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x20]
sub rsp, 0x120
mov r15d, r9d
mov r14d, r8d
mov rdi, rdx
mov r12, rcx
cmp r8d, 0x201
je 0x1400f5cde
cmp r8d, 0x204
jne 0x1400f5ce4
call qword [sym.imp.USER32.dll_SetFocus]
xor esi, esi
mov byte [rbp + 0x70], 0
mov eax, r14d
lea ebx, [rsi + 1]
sub eax, 0x201
je 0x1400f5f30
sub eax, ebx
je 0x1400f5f21
cmp eax, 2
jne 0x1400f5d61
mov eax, dword [rdi + 0x40]
test al, 2
je 0x1400f5d61
test al, 0x10
je 0x1400f5f10
mov ecx, dword [rdi + 0x128]
mov eax, dword [rdi + 0x94]
mov dword [rdi + 0x90], ecx
cmp ecx, eax
jge 0x1400f5d35
mov dword [rdi + 0x90], eax
jmp 0x1400f5d37
mov eax, ecx
mov rcx, qword [rdi + 0x10]
lea r9, [rbp - 0x60]
inc eax
mov dword [rbp - 0x60], ebx
xor r8d, r8d
mov dword [rdi + 0x98], eax
mov edx, 0x120c
mov dword [rbp - 0x5c], eax
call qword [sym.imp.USER32.dll_SendMessageW]
call qword [sym.imp.USER32.dll_ReleaseCapture]
test byte [rdi + 0x40], 2
jne 0x1400f647f
mov eax, dword [rbp + 0x88]
lea rdx, [rsp + 0x68]
mov ebx, dword [rbp + 0x80]
mov rcx, rdi
mov dword [rsp + 0x68], ebx
mov dword [rsp + 0x6c], eax
mov qword [rsp + 0x168], r13
mov dword [rsp + 0x70], 3
call fcn.1400f9160
mov r13d, dword [rsp + 0x74]
mov eax, r15d
and eax, 8
mov r12d, r13d
mov dword [rsp + 0x50], eax
mov eax, r15d
mov r15, qword [rsp + 0x78]
and eax, 4
mov dword [rsp + 0x54], eax
and r12d, 0x20
je 0x1400f5de5
cmp r14d, 0x201
jne 0x1400f5de5
mov r8d, dword [r15]
mov rdx, r15
shr r8d, 2
mov rcx, rdi
not r8b
and r8b, 1
call fcn.1400f8c90
mov r8, qword [rbp - 0x80]
test r12d, r12d
jne 0x1400f63f1
cmp r14d, 0x201
je 0x1400f5e08
cmp r14d, 0x204
jne 0x1400f63f1
mov rcx, qword [rdi + 0x38]
or ebx, 0xffffffff
test rcx, rcx
je 0x1400f5e3b
xor r9d, r9d
xor r8d, r8d
mov edx, 0x41c
call qword [sym.imp.USER32.dll_SendMessageW]
mov r8, qword [rbp - 0x80]
mov dword [rdi + 0x160], ebx
mov dword [rdi + 0x164], ebx
mov dword [rdi + 0x190], ebx
mov eax, r13d
and eax, 0x10
mov dword [rsp + 0x48], eax
je 0x1400f5edd
test byte [rdi + 0x4c], 1
mov ebx, esi
mov qword [rdi + 0xa0], r15
je 0x1400f5ead
test byte [r15], 2
jne 0x1400f5ead
cmp byte [rbp + 0x70], bl
jne 0x1400f5ead
mov edx, dword [r15 + 0x2c]
lea rax, [rbp - 0x60]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1400f8db0
test al, al
je 0x1400f5ead
mov eax, dword [rbp - 0x60]
mov ebx, 1
mov ecx, dword [rbp + 0x80]
test al, 4
je 0x1400f5e9b
cmp ecx, dword [rbp - 0x2c]
jl 0x1400f5e9b
cmp ecx, dword [rbp - 0x24]
cmovl ebx, esi
and eax, 0x18
cmp al, 0x18
jne 0x1400f5ead
cmp ecx, dword [rbp - 0xc]
jl 0x1400f5ead
cmp ecx, dword [rbp - 4]
cmovl ebx, esi
mov r9d, dword [rsp + 0x54]
mov eax, esi
mov r8d, dword [rsp + 0x50]
cmp r14d, 0x204
mov rdx, r15
mov rcx, rdi
sete al
mov dword [rsp + 0x20], eax
call fcn.1400f9650
test ebx, ebx
je 0x1400f63e7
or ebx, 0xffffffff
xor r12b, r12b
mov byte [rsp + 0x40], sil
mov byte [rsp + 0x44], sil
test r13b, 0xf
jne 0x1400f6222
cmp byte [rbp + 0x70], sil
jne 0x1400f6222
test r15, r15
je 0x1400f5fa3
mov r15d, dword [r15 + 0x2c]
jmp 0x1400f5fa6
mov dword [rdi + 0x90], esi
mov dword [rdi + 0x98], esi
jmp 0x1400f5d5b
test byte [rdi + 0x40], 2
je 0x1400f5d6b
jmp 0x1400f5d5b
mov ecx, dword [rdi + 0x40]
test cl, 0x20
je 0x1400f5d61
mov edx, dword [rdi + 0x90]
mov r8d, dword [rbp + 0x80]
lea eax, [rdx - 8]
cmp r8d, eax
jl 0x1400f5d61
lea eax, [rdx + 8]
cmp r8d, eax
jge 0x1400f5d61
or ecx, 2
mov byte [rbp + 0x70], bl
mov dword [rdi + 0x40], ecx
mov rcx, r12
mov dword [rdi + 0x124], r8d
mov dword [rdi + 0x128], edx
call qword [sym.imp.USER32.dll_SetCapture]
xor r9d, r9d
mov rdx, rbx
mov rcx, r12
lea r8d, [r9 + 0x64]
call qword [sym.imp.USER32.dll_SetTimer]
mov ecx, 0x1b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
jmp 0x1400f5d6b
mov r15d, ebx
mov rax, qword [rbp - 0x80]
test rax, rax
je 0x1400f5fb5
mov r13d, dword [rax + 4]
jmp 0x1400f5fb8
mov r13d, ebx
mov edx, dword [rdi + 0x228]
mov r9d, dword [rbp + 0x88]
mov ecx, dword [rdi + 0x22c]
mov r8d, dword [rbp + 0x80]
mov eax, r8d
sub eax, edx
mov dword [rsp + 0x58], eax
mov eax, r9d
sub eax, ecx
mov dword [rsp + 0x5c], eax
lea eax, [rdx + r8]
mov dword [rsp + 0x60], eax
lea r8, [rsp + 0x58]
lea eax, [rcx + r9]
xor edx, edx
mov rcx, qword [rdi]
mov r9d, 2
mov dword [rsp + 0x64], eax
call qword [sym.imp.USER32.dll_MapWindowPoints]
mov rcx, qword [rdi]
call qword [sym.imp.USER32.dll_SetCapture]
mov r12d, esi
nop word [rax + rax]
xor r9d, r9d
mov dword [rsp + 0x20], 1
xor r8d, r8d
lea rcx, [rbp - 0x60]
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x1400f60ab
mov eax, dword [rbp - 0x58]
cmp eax, 0x200
je 0x1400f607d
jbe 0x1400f6067
cmp eax, 0x202
jbe 0x1400f605b
add eax, 0xfffffdfc
cmp eax, 1
ja 0x1400f6067
call qword [sym.imp.USER32.dll_ReleaseCapture]
mov r12d, dword [rbp - 0x58]
jmp 0x1400f60b1
lea rcx, [rbp - 0x60]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rbp - 0x60]
call qword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x1400f60b1
mov eax, dword [rbp - 0x3c]
cmp eax, dword [rsp + 0x58]
jl 0x1400f609b
cmp eax, dword [rsp + 0x60]
jge 0x1400f609b
mov eax, dword [rbp - 0x38]
cmp eax, dword [rsp + 0x5c]
jl 0x1400f609b
cmp eax, dword [rsp + 0x64]
jl 0x1400f60b1
mov rcx, qword [rdi]
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
setne dl
jmp 0x1400f60cf
call qword [sym.imp.USER32.dll_WaitMessage]
mov rcx, qword [rdi]
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x1400f60cd
call qword [sym.imp.USER32.dll_GetCapture]
cmp rax, qword [rdi]
je 0x1400f6020
xor dl, dl
cmp r15d, ebx
jne 0x1400f60d9
mov r15, rsi
jmp 0x1400f60f4
mov rax, qword [rdi + 0x130]
cmp r15d, dword [rax]
jae 0x1400f6477
mov rax, qword [rax + 8]
mov ecx, r15d
mov r15, qword [rax + rcx*8]
cmp r13d, ebx
je 0x1400f611f
cmp r13d, dword [rdi + 0xdc]
jae 0x1400f6477
mov rax, qword [rdi + 0xd0]
mov ecx, r13d
mov r13, qword [rax + rcx*8]
test r13, r13
je 0x1400f6477
jmp 0x1400f6123
mov r13, qword [rbp - 0x80]
test dl, dl
je 0x1400f6141
mov r12b, 1
cmp dword [rsp + 0x48], esi
je 0x1400f613a
test byte [rdi + 0x4c], r12b
je 0x1400f613a
mov ebx, dword [r15 + 0x2c]
mov ecx, ebx
jmp 0x1400f622f
cmp r14d, 0x201
jne 0x1400f6158
cmp r12d, 0x202
je 0x1400f6172
jmp 0x1400f621f
cmp r14d, 0x204
jne 0x1400f621f
cmp r12d, 0x205
jne 0x1400f621f
mov r12d, 1
cmp dword [rsp + 0x48], esi
je 0x1400f6191
mov eax, dword [rsp + 0x40]
test byte [rdi + 0x4c], r12b
movzx eax, al
cmovne eax, r12d
mov dword [rsp + 0x40], eax
mov rbx, qword [rdi]
call qword [sym.imp.USER32.dll_GetMessagePos]
movsx edx, ax
mov rcx, rbx
shr eax, 0x10
cwde
mov dword [rsp + 0x48], edx
lea rdx, [rsp + 0x48]
mov dword [rsp + 0x4c], eax
call qword [sym.imp.USER32.dll_ScreenToClient]
mov ecx, dword [rbp + 0x80]
cmp dword [rsp + 0x48], ecx
jne 0x1400f6206
mov rax, qword [rsp + 0x48]
mov r8d, dword [rbp + 0x88]
shr rax, 0x20
cmp eax, r8d
jne 0x1400f6206
mov eax, dword [rbp + 0x78]
mov edx, esi
mov dword [rsp + 0x30], eax
cmp r14d, 0x201
mov r9d, r8d
mov qword [rsp + 0x28], r13
setne dl
mov qword [rsp + 0x20], r15
mov r8d, ecx
add edx, 0xd
mov rcx, rdi
call fcn.1400f7b50
mov eax, dword [rsp + 0x44]
cmp r14d, 0x204
movzx eax, al
cmove eax, r12d
or ebx, 0xffffffff
mov dword [rsp + 0x44], eax
xor r12b, r12b
mov ecx, ebx
cmp byte [rsp + 0x40], sil
jne 0x1400f63ba
cmp dword [rsp + 0x50], esi
jne 0x1400f63a0
cmp dword [rsp + 0x54], esi
jne 0x1400f63a0
mov rax, qword [rdi + 0x130]
mov r8d, dword [rax]
test r8d, r8d
je 0x1400f636c
lea r14d, [r8 - 1]
mov r11d, esi
cmp ebx, r14d
mov eax, r14d
mov edx, esi
cmovbe eax, ecx
cmp ebx, eax
mov ebx, r14d
cmovbe r8d, ecx
cmovbe r11d, eax
test r8d, r8d
je 0x1400f62b6
mov r9, rsi
nop dword [rax]
mov rax, qword [rdi + 0x130]
mov rcx, qword [rax + 8]
mov r10, qword [r9 + rcx]
mov eax, dword [r10]
test al, 2
je 0x1400f62ab
and eax, 0xfffffffd
cmp ebx, edx
mov dword [r10], eax
mov eax, edx
cmovbe eax, ebx
mov ebx, eax
cmp esi, edx
jae 0x1400f62ab
mov esi, edx
inc edx
add r9, 8
cmp edx, r8d
jb 0x1400f6280
cmp r8d, r11d
ja 0x1400f6305
nop dword [rax + rax]
mov rax, qword [rdi + 0x130]
mov rcx, qword [rax + 8]
mov r9, qword [rcx + r8*8]
mov ecx, dword [r9]
test cl, 0x20
jne 0x1400f62fd
test cl, 2
jne 0x1400f62fd
mov eax, ecx
not eax
xor eax, ecx
and eax, 2
xor eax, ecx
cmp ebx, r8d
mov dword [r9], eax
mov eax, r8d
cmovbe eax, ebx
mov ebx, eax
cmp esi, r8d
jae 0x1400f62fd
mov esi, r8d
inc r8d
cmp r8d, r11d
jbe 0x1400f62c0
lea r8d, [r11 + 1]
cmp r8d, r14d
ja 0x1400f6347
nop
mov rax, qword [rdi + 0x130]
mov rcx, qword [rax + 8]
mov r9, qword [rcx + r8*8]
mov eax, dword [r9]
test al, 2
je 0x1400f633f
and eax, 0xfffffffd
cmp ebx, r8d
mov dword [r9], eax
mov eax, r8d
cmovbe eax, ebx
mov ebx, eax
cmp esi, r8d
jae 0x1400f633f
mov esi, r8d
inc r8d
cmp r8d, r14d
jbe 0x1400f6310
cmp ebx, esi
ja 0x1400f6372
mov rax, qword [rdi + 0xc8]
xor r9d, r9d
mov rcx, qword [rdi]
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea edx, [r9 + 0xb]
call qword [rdi + 0xc0]
jmp 0x1400f6372
mov esi, dword [rbp + 0x70]
mov ebx, dword [rbp + 0x70]
lea rax, [rbp - 0x78]
mov r9b, 1
mov r8d, esi
mov qword [rsp + 0x20], rax
mov edx, ebx
mov rcx, rdi
call fcn.1400f9070
test al, al
je 0x1400f63a0
mov rcx, qword [rbp + 0x60]
lea rdx, [rbp - 0x78]
xor r8d, r8d
call qword [sym.imp.USER32.dll_InvalidateRect]
test r12b, r12b
je 0x1400f63ba
mov r8d, dword [rbp + 0x88]
mov rcx, rdi
mov edx, dword [rbp + 0x80]
call fcn.1400fce70
cmp byte [rsp + 0x44], 0
je 0x1400f6477
mov rbx, qword [rdi]
call qword [sym.imp.USER32.dll_GetMessagePos]
mov r9d, eax
mov r8, rbx
mov edx, 0x7b
mov rcx, rbx
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x1400f6477
mov ebx, dword [rbp + 0x80]
mov r8, qword [rbp - 0x80]
or edx, 0xffffffff
cmp r14d, 0x201
je 0x1400f64d9
cmp r14d, 0x204
je 0x1400f64d9
cmp r14d, 0x202
je 0x1400f64a1
cmp r14d, 0x205
je 0x1400f64a1
cmp r14d, 0x203
jne 0x1400f6491
mov edx, 0xf
mov eax, dword [rbp + 0x88]
test r12d, r12d
jne 0x1400f6477
cmp edx, 0xffffffff
je 0x1400f6477
mov rcx, qword [rdi]
xor r9d, r9d
mov dword [rsp + 0x6c], eax
mov eax, dword [rbp + 0x78]
mov dword [rbp - 0x80], eax
mov rax, qword [rdi + 0xc8]
mov qword [rsp + 0x78], r8
lea r8, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x68], ebx
mov qword [rsp + 0x70], r15
call qword [rdi + 0xc0]
mov r13, qword [rsp + 0x168]
add rsp, 0x120
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
cmp r14d, 0x206
jne 0x1400f6432
mov edx, 0x10
jmp 0x1400f6432
mov eax, dword [rdi + 0xb0]
test eax, eax
je 0x1400f64ce
cmp dword [rdi + 0xb4], ebx
jne 0x1400f64ce
mov ecx, dword [rbp + 0x88]
cmp dword [rdi + 0xb8], ecx
jne 0x1400f64ce
cmp eax, 0x201
mov edx, esi
setne dl
add edx, 0xd
mov dword [rdi + 0xb0], esi
jmp 0x1400f6432
mov eax, dword [rdi + 0xb0]
test eax, eax
je 0x1400f64f5
cmp eax, r14d
je 0x1400f64f5
cmp eax, 0x201
mov edx, esi
setne dl
add edx, 0xd
mov eax, dword [rbp + 0x88]
mov dword [rdi + 0xb8], eax
mov dword [rdi + 0xb0], r14d
mov dword [rdi + 0xb4], ebx
jmp 0x1400f6438