Function at 0x14004cc00
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x14006a040]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rdi, rdx
lea rdx, str.Keybind
lea rcx, [0x140060618]
call fcn.140037fc0
movss xmm1, dword [0x140060c00]
xorps xmm0, xmm0
call fcn.140017ca0
mov ecx, dword [rdi]
test ecx, ecx
jne 0x14004cc68
xor edx, edx
mov r8d, 1
lea rcx, str._None_
call fcn.1400377c0
jmp 0x14004cd67
mov edx, ecx
sub edx, 1
je 0x14004ccf3
sub edx, 1
je 0x14004ccea
sub edx, 2
je 0x14004cce1
sub edx, 1
je 0x14004ccd8
cmp edx, 1
je 0x14004cccf
cmp ecx, 0x1b
je 0x14004ccc6
cmp ecx, 0x100
jge 0x14004ccbd
xor edx, edx
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
test eax, eax
je 0x14004ccbd
shl eax, 0x10
mov r8d, 0x40
lea rbx, [0x14009d480]
mov rdx, rbx
mov ecx, eax
call qword [sym.imp.USER32.dll_GetKeyNameTextW]
jmp 0x14004ccfa
lea rbx, str.Unknown
jmp 0x14004ccfa
lea rbx, str.None
jmp 0x14004ccfa
lea rbx, str.X2_Button
jmp 0x14004ccfa
lea rbx, str.X1_Button
jmp 0x14004ccfa
lea rbx, str.Middle_Button
jmp 0x14004ccfa
lea rbx, str.Right_Button
jmp 0x14004ccfa
lea rbx, str.Left_Button
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.14004c9e0
nop
lea rcx, [rsp + 0x28]
cmp qword [rsp + 0x40], 0xf
cmova rcx, qword [rsp + 0x28]
xor edx, edx
mov r8d, 1
call fcn.1400377c0
nop
mov rdx, qword [rsp + 0x40]
cmp rdx, 0xf
jbe 0x14004cd67
inc rdx
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14004cd62
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14004cd62
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14005568c
movss xmm1, dword [0x140060c00]
xorps xmm0, xmm0
call fcn.140017ca0
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0x20]
lea rcx, str.Set_Key
call fcn.1400388b0
test al, al
je 0x14004ce0c
mov rbp, qword [0x14009d388]
mov rbx, qword [rbp + 0x4000]
movsxd rax, dword [rbx + 0x100]
mov r8, qword [rbx + 0x108]
mov r8d, dword [r8 + rax*4 - 4]
xor edx, edx
lea rcx, str.Set_Keybind
call fcn.140007250
mov esi, eax
mov rcx, qword [rbx]
cmp dword [rcx + 0x404c], eax
jne 0x14004cde4
lea r8, str.Set_Keybind
mov edx, 0xb
mov ecx, eax
call fcn.140020040
test byte [rbp + 0x604c], 4
je 0x14004ce03
mov r8d, esi
lea rdx, str.Set_Keybind
lea rcx, str._popup__OpenPopup___s_____0x_08X__n
call fcn.14001fc50
xor edx, edx
mov ecx, esi
call fcn.140018e30
call fcn.140019560
test al, al
je 0x14004cf61
lea rcx, str.Press_any_key_or_mouse_button...
call fcn.140037fc0
mov ebx, 1
nop word [rax + rax]
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x14004ce49
inc ebx
cmp ebx, 0x100
jl 0x14004ce30
jmp 0x14004ce50
mov dword [rdi], ebx
call fcn.1400192c0
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14004ce6b
mov dword [rdi], 1
call fcn.1400192c0
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14004ce86
mov dword [rdi], 2
call fcn.1400192c0
mov ecx, 4
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14004cea1
mov dword [rdi], 4
call fcn.1400192c0
mov ecx, 5
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14004cebc
mov dword [rdi], 5
call fcn.1400192c0
mov ecx, 6
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14004ced7
mov dword [rdi], 6
call fcn.1400192c0
movss xmm1, dword [0x140060c00]
xorps xmm0, xmm0
call fcn.140017ca0
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0x20]
lea rcx, str.Cancel
call fcn.1400388b0
test al, al
je 0x14004cf0a
call fcn.1400192c0
mov rbx, qword [0x14009d388]
mov rcx, qword [rbx + 0x4000]
cmp qword [rbx + 0x4b18], rcx
jne 0x14004cf45
cmp byte [rbx + 0x4bc1], 0
je 0x14004cf45
cmp dword [rbx + 0x4b68], 0
jne 0x14004cf45
mov eax, dword [rbx + 0x4bc4]
and eax, 0xfffffff2
or eax, 2
mov dword [rbx + 0x4bc4], eax
test dword [rcx + 0x14], 0x1000000
je 0x14004cf55
mov byte [rbx + 0x3f66], 1
call fcn.1400140f0
mov byte [rbx + 0x3f66], 0
cmp dword [rdi], 0
setne al
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400554f0
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
ret