Function at 0x1401d9e40
Capabilities:
Check for time delay via gettickcount
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x30
mov r10, r9
mov rdi, r8
mov rbx, rcx
cmp edx, 0x100
ja 0x1401d9f7a
je 0x1401d9f4b
lea eax, [rdx - 1]
cmp eax, 0x86
ja case.default.0x1401da04e
lea r8, [0x140000000]
movzx eax, byte [r8 + rax + 0x1da1e8]
mov ecx, dword [r8 + rax*4 + 0x1da1c8]
add rcx, r8
jmp rcx
mov rdx, rdi
mov rcx, rbx
call fcn.1401dd700
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov rdx, rdi
mov rcx, rbx
call fcn.1401dd740
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call fcn.1401dae00
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov edx, edi
mov rcx, rbx
call fcn.1401df0e0
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov r9d, 8
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1401dcdb0
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
call sym.ErrorReportClient.exe_SfIsHighColorDisplay
mov r9d, dword [rbx + 0x74]
and eax, 1
mov r8d, dword [rbx + 0x70]
xor edx, edx
and dword [rbx + 4], 0xfffffff7
mov rcx, rbx
sub r9d, dword [rbx + 0x6c]
sub r8d, dword [rbx + 0x68]
shl eax, 3
or dword [rbx + 4], eax
call fcn.1401dddf0
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov rax, r10
movsx r9d, r10w
shr rax, 0x10
mov r8d, 1
movzx ecx, ax
mov edx, edi
mov dword [rsp + 0x20], ecx
mov rcx, rbx
call fcn.1401de970
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
cmp edx, 0x200
ja 0x1401da01b
je 0x1401d9fc0
cmp edx, 0x101
jne case.default.0x1401da04e
mov rax, r10
movsx r9d, r10w
shr rax, 0x10
xor r8d, r8d
movzx ecx, ax
mov edx, edi
mov dword [rsp + 0x20], ecx
mov rcx, rbx
call fcn.1401de970
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov ecx, dword [rcx + 4]
bt ecx, 0xb
jb case.0x1401d9e8e.1
cmp dword [rbx + 0xa0], 5
jne case.0x1401d9e8e.1
and dil, 0xa
movsx edx, r10w
neg dil
mov r9d, 5
sbb eax, eax
btr ecx, 9
and eax, 0x200
or eax, ecx
mov rcx, rbx
mov dword [rbx + 4], eax
mov rax, r10
shr rax, 0x10
movsx r8d, ax
call fcn.1401dcdb0
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
cmp edx, 0x20a
ja 0x1401da167
je 0x1401da134
lea eax, [rdx - 0x201]
cmp eax, 5
ja case.default.0x1401da04e
lea r8, [0x140000000]
mov eax, dword [r8 + rax*4 + 0x1da270]
add rax, r8
jmp rax
mov qword [rsp + 0x40], rbp
mov rax, r10
shr rax, 0x10
test byte [rcx], 4
mov qword [rsp + 0x48], rsi
movsx esi, ax
movsx ebp, r10w
jne 0x1401da077
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_SetFocus]
test dil, 2
jne 0x1401da090
mov r9d, 9
mov r8d, esi
mov edx, ebp
mov rcx, rbx
call fcn.1401dcdb0
mov rbp, qword [rsp + 0x40]
xor eax, eax
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov rax, r10
movsx r8d, r10w
shr rax, 0x10
mov edx, 1
movsx r9d, ax
mov dword [rsp + 0x20], edi
call fcn.1401dd7d0
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov rax, r10
movsx edx, r10w
shr rax, 0x10
mov r9d, 8
movsx r8d, ax
call fcn.1401dcdb0
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov eax, dword [rcx + 4]
test dil, 1
je 0x1401da120
bts eax, 0xc
mov dword [rcx + 4], eax
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
mov eax, dword [rcx + 4]
bt eax, 0xc
jae case.0x1401d9e8e.1
btr eax, 0xc
mov dword [rcx + 4], eax
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
movzx ecx, di
mov rax, r10
shr rax, 0x10
mov dword [rsp + 0x20], ecx
mov rcx, rbx
shr rdi, 0x10
movsx r8d, ax
movsx r9d, di
movsx edx, r10w
call fcn.1401dda00
xor eax, eax
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
cmp edx, 0x215
je 0x1401da1ab
lea eax, [rdx - 0x7f0a]
cmp eax, 4
ja case.default.0x1401da04e
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
jmp fcn.1401dfc60
lea eax, [rdx - 0x400]
cmp eax, 0x7bff
ja case.0x1401d9e8e.1
mov r8, rdi
mov rcx, rbx
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
jmp fcn.1401df590
and dword [rcx + 4], 0xffffefff
xor ecx, ecx
call qword [sym.imp.USER32.dll_ClipCursor]
mov rbx, qword [rsp + 0x50]
xor eax, eax
add rsp, 0x30
pop rdi
ret