Function at 0x1400032f0
Capabilities:
Get keyboard layout
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
mov eax, 0x3a60
call fcn.1400a7180
sub rsp, rax
mov rax, qword [0x1400cd740]
xor rax, rsp
mov qword [rsp + 0x3a50], rax
mov rbx, rdx
mov rdi, r8
mov rdx, qword [0x1400ce050]
test rdx, rdx
je case.default.0x140003356
test r9b, r9b
je 0x1400034bc
lea rax, [rbx - 0x201]
cmp rax, 0xd
ja case.default.0x140003356
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x35e0]
add rax, rcx
jmp rax
lea rax, [rbx - 0x201]
mov r10d, 1
test rax, 0xfffffffffffffffd
mov ecx, 0
cmove ecx, r10d
lea eax, [r10 + 1]
cmp rbx, 0x204
je 0x140003390
xor r8d, r8d
xor r9d, r9d
cmp rbx, 0x206
jne 0x140003398
mov r8d, r10d
mov ecx, eax
mov r9, r10
cmp rbx, 0x207
je 0x1400033aa
cmp rbx, 0x209
jne 0x1400033b5
mov r8d, eax
mov ecx, 4
mov r9, rax
cmp rbx, 0x20b
je 0x1400033c7
cmp rbx, 0x20d
jne 0x1400033e7
xor r8d, r8d
cmp word [rdi + 0xa], r10w
setne r8b
xor r9d, r9d
add r8d, 3
cmp word [rdi + 0xa], r10w
setne r9b
add r9, 3
cmp r8d, 3
jne 0x1400033f3
lea ecx, [r8 + 2]
jmp 0x1400033ff
cmp r8d, 4
mov eax, 6
cmove ecx, eax
cmp byte [rdx + 0xca], 0
je 0x140003410
mov byte [r9 + rdx + 0xe50], r10b
call fcn.140002ae0
jmp case.default.0x140003356
xor eax, eax
cmp rbx, 0x205
sete al
cmp rbx, 0x208
jne 0x140003436
mov eax, 2
jmp 0x140003450
cmp rbx, 0x20c
jne 0x140003450
xor eax, eax
shr rdi, 0x10
cmp di, 1
setne al
add rax, 3
cmp byte [rdx + 0xca], 0
je case.default.0x140003356
mov byte [rax + rdx + 0xe50], 0
jmp case.default.0x140003356
movsx eax, word [r8 + 0xa]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1400befe8]
addss xmm0, dword [rdx + 0xe58]
movss dword [rdx + 0xe58], xmm0
jmp case.default.0x140003356
movsx eax, word [r8 + 0xa]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x1400befe8]
addss xmm0, dword [rdx + 0xe5c]
movss dword [rdx + 0xe5c], xmm0
jmp case.default.0x140003356
add rdx, 8
lea rcx, [rsp + 0x40]
call fcn.140003620
mov qword [0x1400ce018], rdi
sub rbx, 0x100
je 0x14000350a
sub rbx, 1
je 0x1400034f0
sub rbx, 3
je 0x14000350a
cmp rbx, 1
jne 0x1400035af
mov eax, dword [rdi]
cmp eax, 0x200
jae 0x1400035af
mov byte [rsp + rax + 0xb90], 0
jmp 0x1400035af
mov ecx, dword [rdi]
cmp ecx, 0x200
jae 0x14000351c
mov byte [rsp + rcx + 0xb90], 1
call qword [sym.imp.USER32.dll_GetKeyState]
lea rcx, [rsp + 0x3950]
call qword [sym.imp.USER32.dll_GetKeyboardState]
test eax, eax
je 0x1400035a5
xor ecx, ecx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
mov qword [rsp + 0x30], rax
mov edi, 0xa
mov eax, 2
lea r9, [rsp + 0x3930]
mov dword [rsp + 0x28], eax
lea r8, [rsp + 0x3950]
mov rax, qword [0x1400ce018]
mov dword [rsp + 0x20], edi
mov edx, dword [rax + 4]
mov ecx, dword [rax]
call qword [sym.imp.USER32.dll_ToUnicodeEx]
test eax, eax
je 0x1400035a5
lea rbx, [rsp + 0x3930]
movzx edx, word [rbx]
test dx, dx
je 0x14000359b
cmp edx, 0x10000
jae 0x14000359b
lea rcx, [rsp + 0x40]
call fcn.140009660
add rbx, 2
sub rdi, 1
jne 0x140003581
mov ecx, 0xffffffff
call fcn.140002ae0
lea rcx, [rsp + 0x3918]
call fcn.140007610
xor eax, eax
mov rcx, qword [rsp + 0x3a50]
xor rcx, rsp
call fcn.1400a6800
mov rbx, qword [rsp + 0x3a70]
add rsp, 0x3a60
pop rdi
ret