Function at 0x140025928
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xa0
mov rax, qword [0x140096008]
xor rax, rsp
mov qword [rbp - 1], rax
mov rax, qword [rbp + 0x7f]
xor r14d, r14d
mov rdi, r9
mov qword [rbp - 0x19], rax
or r9d, 0xffffffff
mov dword [rbp - 0x41], r14d
mov r15, rdx
mov dword [rbp - 0x35], r14d
mov rdx, qword [rbp + 0x6f]
mov r13d, r8d
mov r8, qword [rbp + 0x77]
mov qword [rbp - 0x29], rdx
mov qword [rbp - 0x21], r8
mov dword [rdx], r9d
mov dword [r8], r9d
mov dword [rax], r14d
mov rdx, qword [rdi + 0x206]
mov eax, dword [rdi + 0xfa]
mov dword [rbp - 0x3d], r14d
mov dword [0x140096e2c], r9d
mov dword [0x140096e24], r14d
mov dword [0x140096e20], r14d
mov dword [0x140096e1c], r14d
mov dword [0x140096e28], r14d
mov dword [0x140096e14], r14d
mov dword [0x140096df0], eax
mov qword [0x140096de8], rcx
test rdx, rdx
je 0x1400259ed
xor r8d, r8d
mov rcx, r15
call qword [sym.imp.GDI32.dll_SelectPalette]
mov rcx, r15
call qword [sym.imp.GDI32.dll_RealizePalette]
mov ecx, dword [rdi + 0x26]
lea rax, [0x1400226e0]
mov qword [0x140096e08], rax
lea rbx, [rdi + 0xde]
lea rax, [0x14001dfb0]
mov edx, 0x64
mov qword [0x140096e00], rax
mov r9, rbx
lea rax, [0x14001faf0]
mov qword [0x140096df8], rax
mov rax, qword [rdi + 0xba]
lea r8d, [rdx + 3]
mov qword [0x140096d48], rax
mov rax, qword [rdi + 0x1e6]
mov qword [0x140096d40], rax
call fcn.140045710
test eax, eax
je 0x140025a59
xor eax, eax
jmp 0x140025f50
mov rax, qword [rbx]
mov qword [0x140096d50], rax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
call qword [sym.imp.USER32.dll_GetDoubleClickTime]
mov rbx, qword [rbp + 0x67]
movzx ecx, si
sub cx, word [0x140096e34]
mov r12d, dword [rbp + 0x6b]
movzx edx, cx
mov ecx, 1
cmp edx, eax
jae 0x140025aa3
cmp ebx, dword [0x140097710]
jne 0x140025aa3
cmp r12d, dword [0x140097714]
jne 0x140025aa3
mov r14d, ecx
mov ecx, InitCommonControls
mov dword [rbp - 0x39], r14d
mov dword [0x140096e30], r14d
mov dword [0x140096e34], esi
mov qword [0x140097710], rbx
call qword [sym.imp.USER32.dll_GetKeyState]
shr rax, 8
xor edx, edx
cmp dword [rbp + 0x87], edx
movzx ecx, al
mov eax, edx
cmove eax, ecx
mov dword [rbp - 0x2d], eax
lea esi, [rdx + 2]
mov eax, dword [0x1400b83a0]
cmp eax, 0xbba
je 0x140025b38
cmp eax, 0xbbb
jle 0x140025b12
cmp eax, 0xbc0
jle 0x140025b1a
cmp eax, 0xbc2
jle 0x140025b2f
cmp eax, 0xbc3
je 0x140025b26
add eax, 0xfffff43c
cmp eax, esi
jbe 0x140025b2f
cmp dword [rbp + 0x8f], edx
je 0x140025b42
mov dword [0x140096e14], 1
jmp 0x140025b42
mov dword [rbp - 0x35], 1
jmp 0x140025b42
mov dword [rbp - 0x3d], 1
jmp 0x140025b42
mov dword [0x140096e28], 1
lea rdx, [rbp - 0x49]
mov dword [rbp - 0x49], esi
mov rcx, r15
mov dword [rbp - 0x45], esi
call fcn.14007c9ac
mov eax, dword [rbp - 0x45]
mov ecx, dword [rbp - 0x49]
lea edx, [r12 + rax]
sub r12d, eax
lea r9d, [rbx + rcx]
mov dword [rsp + 0x20], edx
sub ebx, ecx
mov r8d, r12d
mov edx, ebx
lea rcx, [rbp - 0x11]
call qword [sym.imp.USER32.dll_SetRect]
mov r8d, dword [rdi + 0xf6]
lea r12, [rdi + 0xea]
mov ecx, dword [rdi + 0x26]
mov r9, r12
mov edx, 0x65
call fcn.140045710
xor ebx, ebx
test eax, eax
jne 0x140025ed1
mov rcx, qword [r12]
lea r14d, [rbx + 1]
mov edx, r14d
call fcn.140046e74
cmp dword [rbp - 0x2d], ebx
je 0x140025cdf
cmp dword [0x140096e28], ebx
jne 0x140025cdf
cmp dword [rbp - 0x3d], ebx
jne 0x140025cdf
lea rax, [0x140023e30]
mov dword [0x140096d88], r14d
mov qword [0x140096d98], rax
lea rdx, [0x1400b96e0]
lea rax, [0x140023c10]
mov qword [0x140096d90], rbx
mov rcx, r15
mov qword [0x140096d80], rax
mov qword [rbp - 0x49], rbx
call qword [sym.imp.GDI32.dll_GetWindowOrgEx]
test dword [rdi + 0x22], 0x200
jne 0x140025c25
test r13d, r13d
je 0x140025c2c
cmp r13d, 0x1f4
jge 0x140025c2c
mov dword [0x140096da4], r14d
lea rax, [rdi + 0x106]
mov dword [0x140096dc0], ebx
mov qword [0x140096dd8], rax
cmp dword [rdi + 0x32], ebx
jne 0x140025c49
mov dword [rax + 4], r14d
lea r14, [rdi + 0x186]
mov qword [0x140096dd0], r14
cmp dword [rdi + 0x36], ebx
jne 0x140025c63
mov dword [r14], 1
mov r9, qword [r12]
lea rax, [rbp - 0x11]
mov r8d, dword [rdi + 0x26]
mov edx, r13d
mov dword [rsp + 0x40], ebx
mov rcx, r15
mov dword [rsp + 0x38], ebx
mov qword [rsp + 0x30], rax
mov rax, qword [rbp - 0x49]
mov qword [rsp + 0x28], rax
mov rax, qword [rdi + 0x6e]
mov qword [rsp + 0x20], rax
call fcn.1400229cc
mov ecx, dword [rbp - 0x41]
cmp eax, 0xffffffff
mov eax, 1
cmove ecx, eax
mov rax, qword [0x140096dd0]
mov dword [rbp - 0x41], ecx
mov r8d, dword [rax]
mov rax, qword [0x140096dd8]
mov edx, dword [rax + 4]
or edx, r8d
bt edx, 0xe
jae 0x140025e94
lea r8, [rbp - 0x11]
mov rdx, rdi
mov rcx, r15
call fcn.1400257ec
jmp 0x140025e94
lea rax, [0x1400245a0]
mov dword [0x140096d88], ebx
mov qword [0x140096d98], rax
lea rdx, [0x1400b96e0]
lea rax, [0x140024020]
mov qword [0x140096d90], rbx
mov rcx, r15
mov qword [0x140096d80], rax
mov qword [rbp - 0x49], rbx
call qword [sym.imp.GDI32.dll_GetWindowOrgEx]
lea rax, [rdi + 0x106]
mov dword [0x140096dc0], ebx
mov dword [rax + 4], r14d
lea r14, [rdi + 0x186]
mov qword [0x140096dd8], rax
mov eax, 1
mov dword [r14], eax
test dword [rdi + 0x22], 0x200
mov qword [0x140096dd0], r14
jne 0x140025d61
test r13d, r13d
je 0x140025d67
cmp r13d, 0x1f4
jge 0x140025d67
mov dword [0x140096da4], eax
mov eax, dword [rbp - 0x35]
xor edx, edx
mov rbx, qword [rbp - 0x49]
mov dword [0x140096e10], eax
cmp dword [rbp - 0x3d], edx
jne 0x140025db1
mov r9, qword [r12]
lea rax, [rbp - 0x11]
mov r8d, dword [rdi + 0x26]
mov rcx, r15
mov dword [rsp + 0x40], edx
mov dword [rsp + 0x38], edx
mov edx, r13d
mov qword [rsp + 0x30], rax
mov rax, qword [rdi + 0x6e]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call fcn.1400229cc
xor edx, edx
jmp 0x140025db3
mov eax, edx
mov ecx, edx
mov dword [0x140096e10], edx
cmp eax, 0xffffffff
mov dword [0x140096e14], edx
lea rax, [0x140024790]
mov dword [0x140096e28], edx
sete cl
mov qword [0x140096d98], rax
mov dword [rbp - 0x41], ecx
lea rax, [0x1400246f0]
mov dword [0x140096e30], edx
mov rcx, r15
mov dword [0x140096d88], edx
mov qword [0x140096d90], rdx
lea rdx, [0x1400b96e0]
mov qword [0x140096d80], rax
call qword [sym.imp.GDI32.dll_GetWindowOrgEx]
mov r9, qword [r12]
xor edx, edx
mov r8d, dword [rdi + 0x26]
mov eax, 1
mov dword [rsp + 0x40], eax
mov rcx, r15
mov dword [rsp + 0x38], edx
mov dword [0x140096dc0], eax
lea rax, [rbp - 0x11]
mov qword [rsp + 0x30], rax
mov rax, qword [rdi + 0x6e]
mov dword [0x140096e30], edx
mov qword [0x140096dd8], rdx
mov qword [0x140096dd0], rdx
mov edx, r13d
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rax
call fcn.1400229cc
lea rax, [rdi + 0x106]
mov qword [0x140096dd0], r14
mov qword [0x140096dd8], rax
mov eax, dword [rax + 4]
or eax, dword [r14]
bt eax, 0xe
jae 0x140025e92
lea r8, [rbp - 0x11]
mov rdx, rdi
mov rcx, r15
call fcn.1400257ec
xor ebx, ebx
mov rcx, qword [r12]
mov dword [0x140096da4], ebx
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, dword [rax + 0x44]
mov dword [rdi + 0x32], ecx
mov eax, dword [rax + 0x48]
mov rcx, qword [r12]
mov dword [rdi + 0x36], eax
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
cmp dword [rdi + 0x32], ebx
jne 0x140025ec5
mov dword [rdi + 0x10a], ebx
cmp dword [rdi + 0x36], ebx
jne 0x140025ecd
mov dword [r14], ebx
mov r14d, dword [rbp - 0x39]
mov rcx, qword [r12]
xor edx, edx
mov qword [0x140096e08], rbx
call fcn.140046e74
cmp dword [rbp - 0x41], ebx
je 0x140025f4c
mov edx, dword [0x140096e2c]
mov eax, edx
mov rcx, qword [rbp - 0x29]
shr rax, 0x10
cwde
mov dword [rcx], eax
mov rcx, qword [rbp - 0x21]
movsx eax, dx
mov dword [rcx], eax
cmp dword [rbp - 0x2d], ebx
jne 0x140025f15
mov rcx, qword [rdi + 0x1fa]
call fcn.140034750
cmp dword [0x140096e20], ebx
jne 0x140025f3e
cmp dword [0x140096e1c], ebx
je 0x140025f34
mov eax, dword [0x140096e18]
neg eax
sbb esi, esi
add esi, 4
jmp 0x140025f3e
neg r14d
sbb esi, esi
and esi, 4
inc esi
mov rcx, qword [rbp - 0x19]
mov eax, dword [0x140096e24]
mov dword [rcx], eax
jmp 0x140025f4e
mov esi, ebx
mov eax, esi
mov rcx, qword [rbp - 1]
xor rcx, rsp
call fcn.14008a940
mov rbx, qword [rsp + 0xe0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret