Function at 0x14000a900
Capabilities:
Log keystrokes

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x140042010]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r14d, r8d
mov rdi, rcx
movzx r8d, dx
mov r15d, 1
lea eax, [r8 - 0xc]
cmp eax, 0x6f
ja case.0x14000a967.13
lea rdx, [0x140000000]
cdqe
lea r13d, [r15 + 0x30]
mov r12d, 2
movzx eax, byte [rdx + rax + 0xae10]
mov ecx, dword [rdx + rax*4 + 0xadb0]
add rcx, rdx
jmp rcx
mov dword [rbp - 0x40], r12d
mov dword [rbp - 0x3c], 0x41
jmp 0x14000aa71
mov dword [rbp - 0x40], r12d
mov dword [rbp - 0x3c], 0x42
jmp 0x14000aa71
mov dword [rbp - 0x40], r12d
mov dword [rbp - 0x3c], 0x43
jmp 0x14000aa71
mov dword [rbp - 0x40], r12d
mov dword [rbp - 0x3c], 0x44
jmp 0x14000aa71
mov dword [rbp - 0x40], r12d
mov dword [rbp - 0x3c], 0x45
jmp 0x14000aa71
mov dword [rbp - 0x3c], 0x310031
jmp 0x14000aa6d
mov dword [rbp - 0x3c], 0x320031
jmp 0x14000aa6d
mov dword [rbp - 0x3c], 0x330031
jmp 0x14000aa6d
mov dword [rbp - 0x3c], 0x340031
jmp 0x14000aa6d
mov dword [rbp - 0x3c], 0x350031
jmp 0x14000aa6d
mov dword [rbp - 0x3c], 0x370031
jmp 0x14000aa6d
mov dword [rbp - 0x3c], 0x380031
jmp 0x14000aa6d
mov dword [rbp - 0x3c], 0x390031
jmp 0x14000aa6d
mov dword [rbp - 0x3c], 0x300032
jmp 0x14000aa6d
mov dword [rbp - 0x3c], 0x310032
jmp 0x14000aa6d
mov dword [rbp - 0x3c], 0x330032
jmp 0x14000aa6d
mov dword [rbp - 0x3c], 0x340032
jmp 0x14000aa6d
mov dword [rbp - 0x40], r12d
mov dword [rbp - 0x3c], 0x48
jmp 0x14000aa71
mov dword [rbp - 0x3c], 0x32
jmp 0x14000aa6d
mov dword [rbp - 0x3c], 0x33
jmp 0x14000aa6d
mov dword [rbp - 0x40], r12d
mov dword [rbp - 0x3c], 0x46
jmp 0x14000aa71
mov dword [rbp - 0x3c], 0x35
jmp 0x14000aa6d
mov dword [rbp - 0x3c], 0x36
mov dword [rbp - 0x40], r15d
mov rbx, qword [rbp - 0x40]
mov qword [rbp - 0x40], rbx
mov qword [rbp - 0x18], rbx
test ebx, ebx
je case.0x14000a967.13
movzx ecx, r9w
movzx eax, r9b
shr ecx, 4
and ecx, r15d
mov dword [rbp - 0x30], r15d
mov edx, ecx
mov dword [rbp - 0x2c], r15d
or edx, r12d
mov dword [rbp - 0x28], r15d
and al, r12b
cmove edx, ecx
mov r14d, edx
or r14d, 4
and r9b, 8
cmove r14d, edx
xor edx, edx
xor ecx, ecx
mov dword [rbp - 0x38], r14d
xor esi, esi
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov edx, 0x1b
mov dword [rbp - 0x20], esi
mov word [rbp - 0x22], dx
mov rdx, qword [rdi + 8]
mov word [rbp - 0x24], ax
cmp qword [rdi + 0x10], rdx
je 0x14000aaf4
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [rdx], xmm0
mov dword [rdx + 0x10], esi
add qword [rdi + 8], 0x14
jmp 0x14000ab00
lea r8, [rbp - 0x30]
mov rcx, rdi
call fcn.14000a630
xor edx, edx
mov dword [rbp - 0x30], r15d
xor ecx, ecx
mov dword [rbp - 0x2c], r15d
mov dword [rbp - 0x28], r15d
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov edx, 0x5b
mov dword [rbp - 0x20], esi
mov word [rbp - 0x22], dx
mov rdx, qword [rdi + 8]
mov word [rbp - 0x24], ax
cmp qword [rdi + 0x10], rdx
je 0x14000ab41
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [rdx], xmm0
mov dword [rdx + 0x10], esi
add qword [rdi + 8], 0x14
jmp 0x14000ab4d
lea r8, [rbp - 0x30]
mov rcx, rdi
call fcn.14000a630
cmp ebx, r15d
jne 0x14000abdd
lea rcx, [rbp - 0x14]
mov r15, rsi
lea rax, [rbp - 0x10]
mov ebx, 1
cmp rcx, rax
lea r14, [rbp - 0x14]
cmova r12, rsi
movzx r13d, word [r14]
test r13w, r13w
je 0x14000abc1
xor edx, edx
mov dword [rbp - 0x30], ebx
xor ecx, ecx
mov dword [rbp - 0x2c], ebx
mov dword [rbp - 0x28], ebx
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov rdx, qword [rdi + 8]
mov word [rbp - 0x24], ax
mov word [rbp - 0x22], r13w
mov dword [rbp - 0x20], esi
cmp qword [rdi + 0x10], rdx
je 0x14000abb5
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [rdx], xmm0
mov dword [rdx + 0x10], esi
add qword [rdi + 8], 0x14
jmp 0x14000abc1
lea r8, [rbp - 0x30]
mov rcx, rdi
call fcn.14000a630
add r14, 2
inc r15
cmp r15, r12
jne 0x14000ab71
mov rbx, qword [rbp - 0x40]
mov r15d, 1
mov r14d, dword [rbp - 0x38]
jmp 0x14000abf1
test r14d, r14d
je 0x14000aca1
mov edx, r13d
mov rcx, rdi
call fcn.14000a860
test r14d, r14d
je 0x14000aca1
xor edx, edx
mov dword [rbp - 0x30], 1
xor ecx, ecx
mov dword [rbp - 0x2c], r15d
mov dword [rbp - 0x28], 1
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov rdx, qword [rdi + 8]
mov word [rbp - 0x24], ax
mov eax, 0x3b
mov word [rbp - 0x22], ax
mov dword [rbp - 0x20], esi
cmp qword [rdi + 0x10], rdx
je 0x14000ac41
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [rdx], xmm0
mov dword [rdx + 0x10], esi
add qword [rdi + 8], 0x14
jmp 0x14000ac4d
lea r8, [rbp - 0x30]
mov rcx, rdi
call fcn.14000a630
xor edx, edx
mov dword [rbp - 0x30], 1
xor ecx, ecx
mov dword [rbp - 0x2c], r15d
mov dword [rbp - 0x28], 1
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov rdx, qword [rdi + 8]
add r14w, 0x31
mov word [rbp - 0x24], ax
mov word [rbp - 0x22], r14w
mov dword [rbp - 0x20], esi
cmp qword [rdi + 0x10], rdx
je 0x14000ac95
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [rdx], xmm0
mov dword [rdx + 0x10], esi
add qword [rdi + 8], 0x14
jmp 0x14000aca1
lea r8, [rbp - 0x30]
mov rcx, rdi
call fcn.14000a630
xor edx, edx
mov dword [rbp - 0x30], 1
xor ecx, ecx
mov dword [rbp - 0x2c], r15d
mov dword [rbp - 0x28], 1
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov rdx, qword [rdi + 8]
mov word [rbp - 0x24], ax
mov dword [rbp - 0x20], esi
cmp ebx, 1
jne 0x14000acf0
mov eax, 0x7e
mov word [rbp - 0x22], ax
cmp qword [rdi + 0x10], rdx
je 0x14000acf6
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [rdx], xmm0
mov dword [rdx + 0x10], esi
add qword [rdi + 8], 0x14
jmp 0x14000ad8b
movzx eax, word [rbp - 0x14]
jmp 0x14000acd2
lea r8, [rbp - 0x30]
mov rcx, rdi
call fcn.14000a630
jmp 0x14000ad8b
sub r8d, 8
je 0x14000ad6b
cmp r8d, r15d
jne 0x14000ad39
test r9b, 0x10
je 0x14000ad39
mov edx, 0x1b
mov rcx, rdi
call fcn.14000a860
mov edx, 0x5b
mov rcx, rdi
call fcn.14000a860
mov edx, 0x5a
jmp 0x14000ad83
test r14d, r14d
je 0x14000ad8b
test r9b, 2
je 0x14000ad51
mov edx, 0x1b
mov rcx, rdi
call fcn.14000a860
xor esi, esi
xor r8d, r8d
mov r9d, r14d
mov word [rsp + 0x20], si
mov edx, r15d
mov rcx, rdi
call fcn.14000a100
jmp 0x14000ad8b
test r9b, 2
je 0x14000ad7e
mov edx, 0x1b
mov rcx, rdi
call fcn.14000a860
mov edx, 0x7f
mov rcx, rdi
call fcn.14000a860
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1400174d0
mov rbx, qword [rsp + 0xb8]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret