Function at 0x140054c94
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x20
mov rdi, rdx
mov eax, 0x105
mov edx, dword [rdx + 8]
mov rsi, rcx
cmp edx, eax
ja 0x140054ff4
je 0x140054ef9
cmp edx, 0x7b
je 0x140054e48
cmp edx, 0xa0
jbe 0x140054e26
cmp edx, 0xa2
jbe 0x140054dfa
cmp edx, 0xa3
jbe 0x140054e26
cmp edx, 0xa5
jbe 0x140054dfa
cmp edx, 0xa6
jbe 0x140054e26
cmp edx, 0xa8
jbe 0x140054dfa
cmp edx, 0x100
je 0x140054d5d
cmp edx, 0x104
jne 0x140054e26
mov rcx, qword [rcx + 0x710]
test rcx, rcx
je 0x140054e48
mov r9, qword [rdi + 0x18]
mov rdx, rsi
mov r8, qword [rdi + 0x10]
call fcn.14012f924
test eax, eax
je 0x140054e48
mov eax, 1
jmp 0x140054e31
mov rcx, rdi
call fcn.14007f4bc
test eax, eax
jne 0x140054d7f
mov edx, dword [rdi + 0x10]
lea rcx, [rsi + 0x590]
xor r8d, r8d
call fcn.14008135c
test eax, eax
jne 0x140054d53
cmp qword [rdi + 0x10], 0x1b
jne 0x140054e26
cmp dword [rsi + 0x6d8], 0
je 0x140054da2
lea rcx, [rsi + 0x6b8]
mov rdx, rsi
call fcn.1400e8358
mov rcx, qword [rsi + 0x530]
test rcx, rcx
je 0x140054dbf
cmp dword [rcx + 0xc], 0
je 0x140054dbf
cmp dword [rcx + 8], 0
je 0x140054dbf
call fcn.14011dc7c
call qword [sym.imp.USER32.dll_GetCapture]
mov rcx, rax
call fcn.140021218
mov rdx, rax
lea rcx, str.8W_
call fcn.1400438b8
test rax, rax
je 0x140054e26
mov rcx, qword [rax + 0x40]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x1f]
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x140054d53
movsx eax, word [rdi + 0x18]
add rcx, 0x590
mov r9, qword [rdi]
mov dword [rsp + 0x58], eax
movsx eax, word [rdi + 0x1a]
mov dword [rsp + 0x5c], eax
mov r8, qword [rsp + 0x58]
call fcn.140081660
test eax, eax
jne 0x140054d53
mov rdx, rdi
mov rcx, rsi
call fcn.140029148
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
mov eax, dword [0x1402cb130]
lea rbp, [0x1402cb130]
mov ebx, 1
test eax, eax
jne 0x140054e6e
mov rcx, rbp
call fcn.14006f938
mov eax, ebx
mov dword [0x1402cb130], ebx
cmp dword [0x1402cb3b0], 0
jne 0x140054eb1
test eax, eax
jne 0x140054e8b
mov rcx, rbp
call fcn.14006f938
mov eax, ebx
mov dword [0x1402cb130], ebx
cmp dword [0x1402cb3ac], 0
jne 0x140054eb1
test eax, eax
jne 0x140054ea6
mov rcx, rbp
call fcn.14006f938
mov dword [0x1402cb130], ebx
mov dword [0x1402cb3ac], ebx
call fcn.140034898
call fcn.140057bec
test rax, rax
je 0x140054edd
cmp qword [rdi + 0x10], 0x12
jne 0x140054edd
mov rcx, qword [rax + 0x40]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x10]
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, ebx
jmp 0x140054e31
mov edx, dword [rdi + 0x10]
lea rcx, [rsi + 0x590]
xor r8d, r8d
call fcn.14008135c
test eax, eax
je 0x140054e26
jmp 0x140054ed6
mov rcx, qword [rcx + 0x710]
test rcx, rcx
je 0x140054f1d
mov r9, qword [rdi + 0x18]
mov rdx, rsi
mov r8, qword [rdi + 0x10]
call fcn.14012fab4
test eax, eax
jne 0x140054d53
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
mov ebx, 1
movzx r15d, ax
shr r15d, 0xf
and r15d, ebx
lea ecx, [rbx + 0xf]
call qword [sym.imp.USER32.dll_GetKeyState]
mov rcx, qword [rsi + 0x40]
movzx r12d, ax
shr r12d, 0xf
and r12d, ebx
call sub.IMM32.dll_ImmGetContext
mov rbp, rax
test rax, rax
je 0x140054f6e
mov rcx, rax
call sub.IMM32.dll_ImmGetOpenStatus
test eax, eax
je 0x140054f6e
mov r14d, ebx
jmp 0x140054f71
xor r14d, r14d
test rbp, rbp
je 0x140054f82
mov rcx, qword [rsi + 0x40]
mov rdx, rbp
call sub.IMM32.dll_ImmReleaseContext
cmp qword [rsi + 0x6a0], 0
je 0x140054fe7
cmp qword [rdi + 0x10], 0x12
je 0x140054fa9
cmp qword [rdi + 0x10], 0x79
jne 0x140054fe7
test r15d, r15d
jne 0x140054fe7
test r12d, r12d
jne 0x140054fe7
test r14d, r14d
jne 0x140054fe7
call qword [sym.imp.USER32.dll_GetFocus]
mov rcx, rax
call fcn.140021218
mov rcx, qword [rsi + 0x6a0]
cmp rcx, rax
jne 0x140054fc8
mov rcx, rsi
jmp 0x140054fdd
cmp qword [rdi + 0x10], 0x12
je 0x140054fdd
mov eax, dword [rdi + 0x18]
bt rax, 0x1d
jb 0x140054ed6
call fcn.140029fb8
jmp 0x140054ed6
call fcn.140057bec
test rax, rax
jmp 0x140054ef1
cmp edx, 0x200
je 0x1400550c6
cmp edx, 0x201
je 0x140055055
cmp edx, 0x203
jbe 0x140054e26
cmp edx, 0x205
jbe 0x140055055
cmp edx, 0x206
jbe 0x140054e26
cmp edx, 0x208
jbe 0x140055055
cmp edx, 0x20a
jne 0x140054e26
mov r8, qword [rdi + 0x18]
add rcx, 0x590
mov rdx, qword [rdi + 0x10]
call fcn.140081da4
jmp 0x140054e1e
movsx eax, word [rdi + 0x18]
mov rcx, qword [rdi]
mov dword [rsp + 0x58], eax
movsx eax, word [rdi + 0x1a]
mov dword [rsp + 0x5c], eax
call fcn.140021218
mov rbx, rax
test rax, rax
je 0x140055091
mov rcx, qword [rdi]
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x140055091
mov rcx, qword [rbx + 0x40]
lea rdx, [rsp + 0x58]
call qword [sym.imp.USER32.dll_ClientToScreen]
mov r9, qword [rdi]
lea rcx, [rsi + 0x590]
mov r8, qword [rsp + 0x58]
mov edx, dword [rdi + 8]
call fcn.140081660
test eax, eax
jne 0x140054d53
mov rcx, qword [rdi]
call qword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x140054e26
jmp 0x140054d53
movsx eax, word [rdi + 0x18]
mov rcx, qword [rdi]
mov dword [rsp + 0x58], eax
movsx eax, word [rdi + 0x1a]
mov dword [rsp + 0x5c], eax
call fcn.140021218
test rax, rax
je 0x1400550f2
mov rcx, qword [rax + 0x40]
lea rdx, [rsp + 0x58]
call qword [sym.imp.USER32.dll_ClientToScreen]
mov rdx, qword [rsp + 0x58]
lea rcx, [rsi + 0x590]
call fcn.140081ca8
jmp 0x140054e1e