Function at 0x18002ab90
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov r12, r8
mov rsi, rdx
xor ebx, ebx
cmp rdx, rbx
jne 0x18002abc6
mov qword [rsp + 0x40], rbx
jmp 0x18002abcf
mov rax, qword [rdx + 0x40]
mov qword [rsp + 0x40], rax
mov r13d, dword [r8 + 8]
call qword [sym.imp.USER32.dll_GetFocus]
mov qword [rsp + 0x50], rax
mov rcx, rax
call fcn.180017c38
mov r14, rax
mov qword [rsp + 0x48], rax
mov r15d, 0x100
cmp r13d, r15d
jb 0x18002ac02
cmp r13d, 0x109
jbe 0x18002ac12
lea eax, [r13 - 0x200]
cmp eax, 9
ja 0x18002ad11
cmp r14, rbx
je 0x18002ad11
mov rdi, r14
cmp qword [rdi + 0xa0], rbx
jne 0x18002ac58
mov rcx, qword [rdi + 0x40]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call fcn.180017c38
cmp rax, rsi
je 0x18002ac58
mov rcx, qword [rdi + 0x40]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call fcn.180017c38
mov rdi, rax
cmp rax, rbx
jne 0x18002ac1e
cmp rdi, rbx
je 0x18002ac90
mov rax, qword [rdi + 0xa0]
cmp rax, rbx
je 0x18002ac90
cmp qword [rax + 0x90], rbx
je 0x18002ac90
mov rcx, qword [rax + 0x90]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x28]
cmp eax, ebx
jne 0x18002ac90
mov eax, 1
jmp 0x18002b1ab
cmp r13d, 0x101
je 0x18002aca7
cmp r13d, r15d
je 0x18002aca7
cmp r13d, 0x102
jne 0x18002ad02
cmp rdi, rbx
je 0x18002ad02
mov rax, qword [rdi + 0xa0]
cmp rax, rbx
je 0x18002ad02
mov ecx, SafeArrayDestroy
cmp word [r12 + 0x10], cx
jne 0x18002acd3
lea edi, [rcx - 0xc]
test byte [rax + 0xcc], dil
jne 0x18002acf3
jmp 0x18002acd8
mov edi, 1
mov r15d, 0x1b
cmp word [r12 + 0x10], r15w
jne 0x18002acfa
lea r12d, [r15 - 0x19]
test byte [rax + 0xcc], r12b
je 0x18002ad1e
xor eax, eax
jmp 0x18002b1ab
mov r12d, 2
jmp 0x18002ad1e
mov edi, 1
lea r15d, [rdi + 0x1a]
lea r12d, [rdi + 1]
jmp 0x18002ad1e
mov edi, 1
lea r15d, [rdi + 0x1a]
lea r12d, [rdi + 1]
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rax]
call fcn.180017c38
mov qword [rsp + 0x38], rax
mov ecx, r13d
sub ecx, 0x100
je 0x18002ae03
sub ecx, r12d
je 0x18002ad83
cmp ecx, 4
jne 0x18002b0cb
cmp r14, rbx
jne 0x18002ad6e
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetUBound
call qword [sym.imp.USER32.dll_GetKeyState]
cmp ax, bx
jge 0x18002b107
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0xc0]
cmp word [rdx + 0x10], 0x20
je 0x18002b0fd
jmp 0x18002ad8b
mov rdx, qword [rsp + 0xc0]
mov rcx, rax
call fcn.18002a120
cmp r13d, 0x102
jne 0x18002ada4
test al, 0x84
jne 0x18002b0f3
mov r13, qword [rsp + 0xc0]
mov edx, 9
cmp word [r13 + 0x10], dx
jne 0x18002adc1
test r12b, al
jne 0x18002b10f
cmp word [r13 + 0x10], 0x20
jne 0x18002add0
xor eax, eax
jmp 0x18002b1ab
mov r8, r13
mov rdx, qword [rsp + 0x38]
mov rcx, rsi
call fcn.18002aa4c
cmp rax, rbx
je 0x18002b10f
mov rcx, qword [rax + 8]
cmp rcx, rbx
je 0x18002b10f
mov rdx, r13
call fcn.18001e540
jmp 0x18002b156
mov r13, qword [rsp + 0xc0]
mov rdx, r13
mov rcx, rax
call fcn.18002a120
movzx ecx, word [r13 + 0x10]
cmp ecx, 3
je 0x18002b052
mov edx, 9
cmp ecx, edx
je 0x18002af97
cmp ecx, 0xd
je 0x18002af57
cmp ecx, r15d
je 0x18002b052
cmp ecx, 0x24
jle 0x18002b10f
cmp ecx, 0x26
jle 0x18002ae64
cmp ecx, 0x28
jle 0x18002ae69
cmp ecx, 0x2b
je 0x18002af57
jmp 0x18002b10f
mov r15d, edi
jmp 0x18002ae6c
mov r15d, ebx
mov rdx, r13
mov rcx, r14
call fcn.18002a120
test dil, al
jne 0x18002b10f
cmp r15d, ebx
je 0x18002ae94
xor edx, edx
mov rcx, rsi
call fcn.18001c864
mov r12, rax
jmp 0x18002aea1
xor edx, edx
mov rcx, rsi
call fcn.18001c8c8
mov r12, rax
cmp r12, rbx
je 0x18002b10f
cmp dword [r12 + 0x10], ebx
je 0x18002aebc
mov rdx, r12
mov rcx, rsi
call fcn.18001c2e8
cmp qword [r12 + 8], rbx
je 0x18002aed9
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + 0x158]
jmp 0x18002b156
cmp qword [r12], rbx
je 0x18002aeed
mov rcx, qword [r12]
call fcn.180017c38
mov r13, rax
jmp 0x18002af13
cmp r14, rbx
jne 0x18002aef7
mov rdx, rbx
jmp 0x18002aefb
mov rdx, qword [r14 + 0x40]
mov r8d, r15d
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_GetNextDlgGroupItem]
mov rcx, rax
call fcn.180017c38
mov r13, rax
cmp r13, rbx
je 0x18002b0e9
mov rax, qword [rsi + 0x98]
mov qword [rax + 0xd8], rbx
mov rcx, r13
call fcn.18002a208
cmp dword [r12 + 0x10], ebx
je 0x18002b156
xor r9d, r9d
mov r8, rdi
mov edx, 0xf1
mov rcx, qword [r13 + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x18002b156
test al, 4
jne 0x18002b10f
mov rcx, r14
call fcn.18002a1c8
test al, 0x10
je 0x18002af87
mov r13, r14
mov rcx, r14
call fcn.18001be00
mov r12d, eax
cmp r14, rbx
jne 0x18002b065
jmp 0x18002b052
mov rcx, rsi
call fcn.18002a6c4
mov r12d, eax
jmp 0x18002b052
test r12b, al
jne 0x18002b10f
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
call qword [sym.imp.USER32.dll_GetKeyState]
mov r12d, ebx
cmp ax, bx
setl r12b
mov r8d, r12d
xor edx, edx
mov rcx, rsi
call fcn.18001c144
cmp rax, rbx
je 0x18002b10f
cmp qword [rax + 8], rbx
je 0x18002afe6
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + 0x158]
jmp 0x18002b156
cmp qword [rax], rbx
je 0x18002aff8
mov rcx, qword [rax]
call fcn.180017c38
mov r12, rax
jmp 0x18002b023
mov rdx, qword [rsp + 0x38]
cmp rdx, rbx
jne 0x18002b007
mov rdx, rbx
jmp 0x18002b00b
mov rdx, qword [rdx + 0x40]
mov r8d, r12d
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_GetNextDlgTabItem]
mov rcx, rax
call fcn.180017c38
mov r12, rax
cmp r12, rbx
je 0x18002b156
mov rax, qword [rsi + 0x98]
mov qword [rax + 0xd8], rbx
mov rcx, r12
call fcn.18002a208
mov rdx, r12
mov rcx, r14
call fcn.18002a478
jmp 0x18002b156
mov edx, r12d
mov rcx, rsi
call fcn.18002a538
mov r13, rax
cmp rax, rbx
je 0x18002b0df
mov rcx, r13
call fcn.18001bea8
cmp eax, ebx
jne 0x18002b086
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBeep]
mov r13, qword [rsp + 0xc0]
jmp 0x18002b10f
cmp qword [r13 + 0xa0], rbx
je 0x18002b0d5
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
movzx r9d, bx
movzx r8d, di
mov edx, 0xfffffdd9
mov rcx, r13
call fcn.18001bf40
nop
jmp 0x18002b156
mov r13, qword [rsp + 0xc0]
jmp 0x18002b10f
mov r13, qword [rsp + 0xc0]
jmp 0x18002b10f
mov r13, qword [rsp + 0xc0]
jmp 0x18002b10f
mov r13, qword [rsp + 0xc0]
jmp 0x18002b10f
mov r13, qword [rsp + 0xc0]
jmp 0x18002b10f
mov r13, qword [rsp + 0xc0]
jmp 0x18002b10f
mov r13, qword [rsp + 0xc0]
bt dword [rsi + 0x78], 0xc
jb 0x18002b154
mov rdx, r13
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_IsDialogMessageW]
mov edi, eax
cmp eax, ebx
je 0x18002b156
call qword [sym.imp.USER32.dll_GetFocus]
mov rcx, rax
call fcn.180017c38
cmp rax, r14
je 0x18002b156
call qword [sym.imp.USER32.dll_GetFocus]
mov rcx, rax
call fcn.180017c38
mov rcx, rax
call fcn.18002a3d8
jmp 0x18002b156
mov edi, ebx
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.USER32.dll_IsWindow]
cmp eax, ebx
je 0x18002b1a9
call qword [sym.imp.USER32.dll_GetFocus]
mov rcx, rax
call fcn.180017c38
mov rdx, rax
mov rcx, r14
call fcn.18002a478
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.USER32.dll_IsWindow]
cmp eax, ebx
je 0x18002b1a9
call qword [sym.imp.USER32.dll_GetFocus]
mov rcx, rax
call fcn.180017c38
mov r8, rax
mov rdx, r14
mov rcx, rsi
call fcn.18002a700
mov eax, edi
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret