Function at 0x140033f40
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rsi
push r12
sub rsp, 0x50
mov r12, r8
mov rsi, rdx
mov rbx, rcx
test rdx, rdx
jne 0x140033f76
call fcn.1400184a0
mov ecx, 0xa
mov edx, 0xe
test eax, eax
cmovne ecx, edx
mov eax, ecx
add rsp, 0x50
pop r12
pop rsi
pop rbx
ret
mov eax, dword [rdx + 0x28]
cmp eax, 0xc
jne 0x1400344f0
add rcx, 0x50
mov qword [rsp + 0x40], r13
call fcn.140012ef0
test al, al
jne 0x140033fec
mov ecx, 0x1b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140033fb4
mov ecx, 0xd
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x140033fec
mov rcx, qword [0x1402ae2c8]
lea rdx, [rsi + 0xa]
call qword [sym.imp.USER32.dll_KillTimer]
mov rdx, rsi
mov rcx, rbx
call fcn.140034500
lea rcx, [rsi + 8]
mov edx, eax
call fcn.14007f770
mov eax, dword [rsi + 0x28]
mov r13, qword [rsp + 0x40]
add rsp, 0x50
pop r12
pop rsi
pop rbx
ret
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x48], rdi
mov rdx, r12
mov rcx, rbx
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
call fcn.140043710
mov rcx, r12
mov edi, eax
call fcn.140042f70
xor r15d, r15d
test eax, eax
je 0x140034030
lea rcx, [rbx + 0x1040]
call fcn.140042f70
lea ebp, [r15 + 1]
test eax, eax
je 0x140034033
mov ebp, r15d
lea rcx, [rbx + 0x50]
call fcn.140012ef0
test al, al
jne 0x14003407e
test edi, edi
jne 0x140034048
test ebp, ebp
je 0x14003407e
mov rcx, qword [0x1402ae2c8]
lea rdx, [rsi + 0xa]
call qword [sym.imp.USER32.dll_KillTimer]
mov ecx, dword [rbx + 0xfc4]
test ecx, ecx
je 0x140034069
call qword [sym.imp.KERNEL32.dll_Sleep]
xor edx, edx
mov rcx, rsi
call fcn.1400cfff0
lea rcx, [rsi + 8]
mov edx, eax
call fcn.14007f770
mov rcx, qword [rsi + 0x120]
xor r8d, r8d
mov rdx, r12
add rcx, 0x20
call fcn.1400d5640
mov rcx, qword [rbx + 0xc58]
mov r14, rax
test rcx, rcx
je 0x1400340ad
mov rdx, qword [rcx]
call qword [rdx + 0x18]
mov edi, eax
jmp 0x1400340b0
mov edi, r15d
lea rcx, [rbx + 0x50]
mov dword [rsp + 0x78], edi
call fcn.140012ef0
test al, al
je 0x140034151
test edi, edi
je 0x14003423c
cmp dword [rbx + 0xd24], r15d
jne 0x140034184
mov rcx, r14
call fcn.140012e20
test al, al
jne 0x140034101
mov rdx, r14
mov rcx, rbx
call fcn.1400421d0
mov rcx, rax
call fcn.140012e20
test al, al
jne 0x140034184
mov rcx, qword [rsi + 0x120]
add rcx, 0x20
call fcn.1400d5630
test eax, eax
jne 0x14003412c
mov rcx, qword [rsi + 0x120]
add rcx, 0xf0
call fcn.1400d5630
test eax, eax
jne 0x140034184
mov rcx, r12
call fcn.140043170
test eax, eax
jne 0x14003423c
lea rcx, [rbx + 0x1040]
call fcn.140043170
test eax, eax
jne 0x140034184
jmp 0x14003423c
mov rcx, qword [rsi + 0x120]
add rcx, 0x20
call fcn.1400d5630
test eax, eax
jne 0x14003423c
mov rcx, qword [rsi + 0x120]
add rcx, 0xf0
call fcn.1400d5630
test eax, eax
je 0x14003423c
mov rcx, qword [rbx + 0x348]
test rcx, rcx
je 0x14003423c
mov dword [rsp + 0x20], r15d
mov dword [rsp + 0x88], r15d
mov rax, qword [rcx]
lea r8, [rsp + 0x20]
mov edx, 0x12
call qword [rax + 0x48]
mov rcx, qword [rbx + 0x348]
lea r8, [rsp + 0x88]
mov rax, qword [rcx]
mov edx, 0x11
call qword [rax + 0x48]
mov edi, dword [rsp + 0x88]
test edi, edi
je 0x140034216
mov rcx, r12
call fcn.140013770
mov edx, dword [rsp + 0x20]
cmp eax, edx
jb 0x1400341ea
sub eax, edx
jmp 0x1400341f9
or ecx, 0xffffffff
sub ecx, edx
cmp ecx, 0x1388
ja 0x140034205
add eax, ecx
cmp eax, edi
mov ecx, r15d
seta cl
test ecx, ecx
jne 0x140034216
mov rdx, qword [rbx + 0x348]
mov rcx, rbx
call fcn.140031250
jmp 0x14003423c
mov r8d, dword [rbx + 0xd20]
mov rcx, qword [0x1402ae2c8]
lea rdx, [rsi + 0xa]
lea r9, [0x140036d60]
call qword [sym.imp.USER32.dll_SetTimer]
mov dword [rbx + 0xd24], r15d
lea rcx, [rbx + 0x50]
call fcn.140012ef0
test al, al
je 0x1400342b4
mov r14d, dword [rsp + 0x78]
test r14d, r14d
je 0x1400342f6
test ebp, ebp
jne 0x1400342a2
mov rcx, qword [rsi + 0x120]
add rcx, 0x20
call fcn.1400d5630
test eax, eax
je 0x140034286
mov rcx, qword [rsi + 0x120]
add rcx, 0xf0
call fcn.1400d5630
test eax, eax
je 0x1400342a2
mov rcx, r12
call fcn.140043170
test eax, eax
je 0x1400342f6
lea rcx, [rbx + 0x1040]
call fcn.140043170
test eax, eax
jne 0x1400342f6
mov r15d, 1
mov dword [rbx + 0xd24], 0
jmp 0x1400342f6
mov rcx, qword [rsi + 0x120]
add rcx, 0x20
call fcn.1400d5630
test eax, eax
je 0x1400342f1
mov rcx, qword [rsi + 0x120]
add rcx, 0xf0
call fcn.1400d5630
test eax, eax
jne 0x1400342f1
mov rcx, r14
call fcn.140013570
test al, al
jne 0x1400342f1
mov r15d, 1
mov r14d, dword [rsp + 0x78]
cmp qword [rbx + 0x348], 0
mov rbp, qword [rsp + 0x70]
je 0x1400344b1
mov rcx, qword [rsi + 0x120]
add rcx, 0x20
call fcn.1400d5630
test eax, eax
je 0x1400344b1
mov rcx, qword [rbx + 0x348]
xor r8d, r8d
xor edx, edx
call fcn.1400ca4f0
bt eax, 0x12
jae 0x1400344b1
mov rdi, qword [rbx + 0x10]
test rdi, rdi
je 0x1400343ed
nop dword [rax]
cmp qword [rdi], 0
jne 0x14003436f
lea rdx, str.F:CheckPointsTPDrv_builderSuperMan1LibSynList.h
lea rcx, str.m_pItem
mov r8d, 0x60
call fcn.1400be660
mov rcx, qword [rdi]
lea rdx, str.Right_Edge_Pull
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test eax, eax
jne 0x14003438e
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x140034350
jmp 0x1400343ed
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400343ed
mov rdx, r12
call fcn.140041260
cmp eax, 1
jne 0x1400343ed
cmp dword [rbx + 0xf54], 0
mov dword [rbx + 0xf58], eax
jne 0x1400343ce
mov rcx, qword [rbx + 0x58]
test rcx, rcx
jne 0x1400343bf
lea rcx, [rbx + 0x70]
mov rax, qword [rcx]
mov edx, 1
call qword [rax + 0x60]
test eax, eax
jne 0x1400343de
inc dword [rbx + 0x7c0]
mov dword [rbx + 0xf54], 1
mov rdx, qword [rbx + 0x348]
mov rcx, rbx
call fcn.140031250
mov rdi, qword [rbx + 0x10]
test rdi, rdi
je 0x1400344b1
nop word [rax + rax]
cmp qword [rdi], 0
jne 0x14003441f
lea rdx, str.F:CheckPointsTPDrv_builderSuperMan1LibSynList.h
lea rcx, str.m_pItem
mov r8d, 0x60
call fcn.1400be660
mov rcx, qword [rdi]
lea rdx, str.4FVertical_Scrolling
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test eax, eax
jne 0x14003443e
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x140034400
jmp 0x1400344b1
mov rdi, qword [rdi]
test rdi, rdi
je 0x1400344b1
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.1400ca7d0
test al, 2
je 0x1400344b1
mov rdx, r12
mov rcx, rdi
call fcn.140041260
cmp eax, 1
jne 0x1400344b1
cmp dword [rbx + 0xf54], 0
mov dword [rbx + 0xf58], eax
jne 0x140034492
mov rcx, qword [rbx + 0x58]
test rcx, rcx
jne 0x140034483
lea rcx, [rbx + 0x70]
mov rax, qword [rcx]
mov edx, 1
call qword [rax + 0x60]
test eax, eax
jne 0x1400344a2
inc dword [rbx + 0x7c0]
mov dword [rbx + 0xf54], 1
mov rdx, qword [rbx + 0x348]
mov rcx, rbx
call fcn.140031250
mov rdi, qword [rsp + 0x48]
test r15d, r15d
mov r15, qword [rsp + 0x30]
jne 0x1400344d2
lea rcx, [rbx + 0x50]
call fcn.140012ef0
test al, al
je 0x1400344e3
test r14d, r14d
jne 0x1400344e3
mov rcx, qword [0x1402ae2c8]
lea rdx, [rsi + 0xa]
call qword [sym.imp.USER32.dll_KillTimer]
mov r14, qword [rsp + 0x38]
mov eax, dword [rsi + 0x28]
mov r13, qword [rsp + 0x40]
add rsp, 0x50
pop r12
pop rsi
pop rbx
ret