Function at 0x140005ef0
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x138
mov qword [rsp + 0x130], rcx
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x28], rax
cmp qword [rax], 0
jne 0x140005f63
xor eax, eax
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov r9, qword [rsp + 0x28]
mov rcx, rax
mov edx, 0x800
lea r8, [0x140070180]
xor eax, eax
mov qword [rsp + 0x20], 0
call sub.DINPUT8.dll_DirectInput8Create
cmp eax, 0
jge 0x140005f5e
mov rax, qword [rsp + 0x28]
mov qword [rax], 0
jmp 0x14000668e
jmp 0x140005f63
mov rax, qword [rsp + 0x28]
cmp qword [rax + 8], 0
jne 0x140005fec
mov r8, qword [rsp + 0x28]
mov rcx, qword [r8]
add r8, 8
mov rax, qword [rcx]
lea rdx, [0x1400701a0]
xor r9d, r9d
call qword [rax + 0x18]
cmp eax, 0
jge 0x140005f9d
jmp 0x14000668e
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
lea rdx, [0x140070160]
call qword [rax + 0x58]
cmp eax, 0
jge 0x140005fdd
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rax, qword [rsp + 0x28]
mov qword [rax + 8], 0
jmp 0x14000668e
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
call qword [rax + 0x38]
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax + 8]
lea r8, [rsp + 0x30]
mov rax, qword [rcx]
mov edx, 0x100
call qword [rax + 0x48]
cmp eax, 0
jl 0x14000668e
mov rax, qword [rsp + 0x28]
cmp byte [rsp + 0x31], 0
setne cl
and cl, 1
mov byte [rax + 0x10], cl
cmp byte [rsp + 0x6b], 0
setne cl
and cl, 1
mov byte [rax + 0x11], cl
cmp byte [rsp + 0x6c], 0
setne cl
and cl, 1
mov byte [rax + 0x12], cl
cmp byte [rsp + 0x6d], 0
setne cl
and cl, 1
mov byte [rax + 0x13], cl
cmp byte [rsp + 0x6e], 0
setne cl
and cl, 1
mov byte [rax + 0x14], cl
cmp byte [rsp + 0x6f], 0
setne cl
and cl, 1
mov byte [rax + 0x15], cl
cmp byte [rsp + 0x70], 0
setne cl
and cl, 1
mov byte [rax + 0x16], cl
cmp byte [rsp + 0x71], 0
setne cl
and cl, 1
mov byte [rax + 0x17], cl
cmp byte [rsp + 0x72], 0
setne cl
and cl, 1
mov byte [rax + 0x18], cl
cmp byte [rsp + 0x73], 0
setne cl
and cl, 1
mov byte [rax + 0x19], cl
cmp byte [rsp + 0x74], 0
setne cl
and cl, 1
mov byte [rax + 0x1a], cl
cmp byte [rsp + 0x87], 0
setne cl
and cl, 1
mov byte [rax + 0x1b], cl
cmp byte [rsp + 0x88], 0
setne cl
and cl, 1
mov byte [rax + 0x1c], cl
cmp byte [rsp + 0x59], 0
setne cl
and cl, 1
mov byte [rax + 0x1d], cl
cmp byte [rsp + 0x32], 0
setne cl
and cl, 1
mov byte [rax + 0x1e], cl
cmp byte [rsp + 0x33], 0
setne cl
and cl, 1
mov byte [rax + 0x1f], cl
cmp byte [rsp + 0x34], 0
setne cl
and cl, 1
mov byte [rax + 0x20], cl
cmp byte [rsp + 0x35], 0
setne cl
and cl, 1
mov byte [rax + 0x21], cl
cmp byte [rsp + 0x36], 0
setne cl
and cl, 1
mov byte [rax + 0x22], cl
cmp byte [rsp + 0x37], 0
setne cl
and cl, 1
mov byte [rax + 0x23], cl
cmp byte [rsp + 0x38], 0
setne cl
and cl, 1
mov byte [rax + 0x24], cl
cmp byte [rsp + 0x39], 0
setne cl
and cl, 1
mov byte [rax + 0x25], cl
cmp byte [rsp + 0x3a], 0
setne cl
and cl, 1
mov byte [rax + 0x26], cl
cmp byte [rsp + 0x3b], 0
setne cl
and cl, 1
mov byte [rax + 0x27], cl
cmp byte [rsp + 0x3c], 0
setne cl
and cl, 1
mov byte [rax + 0x28], cl
cmp byte [rsp + 0x3d], 0
setne cl
and cl, 1
mov byte [rax + 0x29], cl
cmp byte [rsp + 0x3e], 0
setne cl
and cl, 1
mov byte [rax + 0x2a], cl
cmp byte [rsp + 0x3f], 0
setne cl
and cl, 1
mov byte [rax + 0x2b], cl
cmp byte [rsp + 0x40], 0
setne cl
and cl, 1
mov byte [rax + 0x2c], cl
cmp byte [rsp + 0x41], 0
setne cl
and cl, 1
mov byte [rax + 0x2d], cl
cmp byte [rsp + 0x42], 0
setne cl
and cl, 1
mov byte [rax + 0x2e], cl
cmp byte [rsp + 0x43], 0
setne cl
and cl, 1
mov byte [rax + 0x2f], cl
cmp byte [rsp + 0x44], 0
setne cl
and cl, 1
mov byte [rax + 0x30], cl
cmp byte [rsp + 0x45], 0
setne cl
and cl, 1
mov byte [rax + 0x31], cl
cmp byte [rsp + 0x46], 0
setne cl
and cl, 1
mov byte [rax + 0x32], cl
cmp byte [rsp + 0x47], 0
setne cl
and cl, 1
mov byte [rax + 0x33], cl
cmp byte [rsp + 0x48], 0
setne cl
and cl, 1
mov byte [rax + 0x34], cl
cmp byte [rsp + 0x49], 0
setne cl
and cl, 1
mov byte [rax + 0x35], cl
cmp byte [rsp + 0x4a], 0
setne cl
and cl, 1
mov byte [rax + 0x36], cl
cmp byte [rsp + 0x4b], 0
setne cl
and cl, 1
mov byte [rax + 0x37], cl
cmp byte [rsp + 0x6a], 0
setne cl
and cl, 1
mov byte [rax + 0x39], cl
cmp byte [rsp + 0x4e], 0
setne cl
and cl, 1
mov byte [rax + 0x3a], cl
cmp byte [rsp + 0x4f], 0
setne cl
and cl, 1
mov byte [rax + 0x3b], cl
cmp byte [rsp + 0x50], 0
setne cl
and cl, 1
mov byte [rax + 0x3c], cl
cmp byte [rsp + 0x51], 0
setne cl
and cl, 1
mov byte [rax + 0x3d], cl
cmp byte [rsp + 0x52], 0
setne cl
and cl, 1
mov byte [rax + 0x3e], cl
cmp byte [rsp + 0x53], 0
setne cl
and cl, 1
mov byte [rax + 0x3f], cl
cmp byte [rsp + 0x54], 0
setne cl
and cl, 1
mov byte [rax + 0x40], cl
cmp byte [rsp + 0x55], 0
setne cl
and cl, 1
mov byte [rax + 0x41], cl
cmp byte [rsp + 0x56], 0
setne cl
and cl, 1
mov byte [rax + 0x42], cl
cmp byte [rsp + 0x57], 0
setne cl
and cl, 1
mov byte [rax + 0x43], cl
cmp byte [rsp + 0x58], 0
setne cl
and cl, 1
mov byte [rax + 0x44], cl
cmp byte [rsp + 0x5b], 0
setne cl
and cl, 1
mov byte [rax + 0x45], cl
cmp byte [rsp + 0x4c], 0
setne cl
and cl, 1
mov byte [rax + 0x38], cl
cmp byte [rsp + 0x5a], 0
setne cl
and cl, 1
mov byte [rax + 0x46], cl
cmp byte [rsp + 0x5c], 0
setne cl
and cl, 1
mov byte [rax + 0x48], cl
cmp byte [rsp + 0x5d], 0
setne cl
and cl, 1
mov byte [rax + 0x49], cl
cmp byte [rsp + 0x5e], 0
setne cl
and cl, 1
mov byte [rax + 0x4a], cl
cmp byte [rsp + 0x5f], 0
setne cl
and cl, 1
mov byte [rax + 0x4b], cl
cmp byte [rsp + 0x60], 0
setne cl
and cl, 1
mov byte [rax + 0x4c], cl
cmp byte [rsp + 0x61], 0
setne cl
and cl, 1
mov byte [rax + 0x4d], cl
cmp byte [rsp + 0x62], 0
setne cl
and cl, 1
mov byte [rax + 0x4e], cl
cmp byte [rsp + 0x63], 0
setne cl
and cl, 1
mov byte [rax + 0x4f], cl
cmp byte [rsp + 0x64], 0
setne cl
and cl, 1
mov byte [rax + 0x50], cl
cmp byte [rsp + 0x65], 0
setne cl
and cl, 1
mov byte [rax + 0x51], cl
cmp byte [rsp + 0x66], 0
setne cl
and cl, 1
mov byte [rax + 0x52], cl
cmp byte [rsp + 0x4d], 0
setne cl
and cl, 1
mov byte [rax + 0x53], cl
cmp byte [rsp + 0x10b], 0
setne cl
and cl, 1
mov byte [rax + 0x54], cl
cmp byte [rsp + 0x68], 0
setne cl
and cl, 1
mov byte [rax + 0x55], cl
cmp byte [rsp + 0x69], 0
setne cl
and cl, 1
mov byte [rax + 0x56], cl
cmp byte [rsp + 0xe8], 0
setne cl
and cl, 1
mov byte [rax + 0x57], cl
cmp byte [rsp + 0x10c], 0
setne cl
and cl, 1
mov byte [rax + 0x58], cl
cmp byte [rsp + 0xcd], 0
setne cl
and cl, 1
mov byte [rax + 0x5b], cl
mov ecx, 0x2c
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov cx, ax
mov rax, qword [rsp + 0x28]
movsx ecx, cx
and ecx, 0x8000
cmp ecx, 0
setne cl
and cl, 1
mov byte [rax + 0x5c], cl
cmp byte [rsp + 0xf5], 0
setne cl
and cl, 1
mov byte [rax + 0x5d], cl
cmp byte [rsp + 0x76], 0
setne cl
and cl, 1
mov byte [rax + 0x5e], cl
cmp byte [rsp + 0x102], 0
setne cl
and cl, 1
mov byte [rax + 0x5f], cl
cmp byte [rsp + 0xf7], 0
setne cl
and cl, 1
mov byte [rax + 0x60], cl
cmp byte [rsp + 0xf9], 0
setne cl
and cl, 1
mov byte [rax + 0x61], cl
cmp byte [rsp + 0x103], 0
setne cl
and cl, 1
mov byte [rax + 0x62], cl
cmp byte [rsp + 0xff], 0
setne cl
and cl, 1
mov byte [rax + 0x63], cl
cmp byte [rsp + 0x101], 0
setne cl
and cl, 1
mov byte [rax + 0x64], cl
cmp byte [rsp + 0xf8], 0
setne cl
and cl, 1
mov byte [rax + 0x65], cl
cmp byte [rsp + 0xfb], 0
setne cl
and cl, 1
mov byte [rax + 0x66], cl
cmp byte [rsp + 0x100], 0
setne cl
and cl, 1
mov byte [rax + 0x67], cl
cmp byte [rsp + 0xfd], 0
setne cl
and cl, 1
mov byte [rax + 0x68], cl
cmp byte [rsp + 0x75], 0
setne cl
and cl, 1
mov byte [rax + 0x69], cl
cmp byte [rsp + 0xe5], 0
setne cl
and cl, 1
mov byte [rax + 0x6a], cl
cmp byte [rsp + 0x67], 0
setne cl
and cl, 1
mov byte [rax + 0x6b], cl
cmp byte [rsp + 0x7a], 0
setne cl
and cl, 1
mov byte [rax + 0x6c], cl
cmp byte [rsp + 0x77], 0
setne cl
and cl, 1
mov byte [rax + 0x6d], cl
cmp byte [rsp + 0x78], 0
setne cl
and cl, 1
mov byte [rax + 0x6e], cl
cmp byte [rsp + 0x79], 0
setne cl
and cl, 1
mov byte [rax + 0x6f], cl
cmp byte [rsp + 0x7e], 0
setne cl
and cl, 1
mov byte [rax + 0x70], cl
cmp byte [rsp + 0x7b], 0
setne cl
and cl, 1
mov byte [rax + 0x71], cl
cmp byte [rsp + 0x7c], 0
setne cl
and cl, 1
mov byte [rax + 0x72], cl
cmp byte [rsp + 0x7d], 0
setne cl
and cl, 1
mov byte [rax + 0x73], cl
cmp byte [rsp + 0x7f], 0
setne cl
and cl, 1
mov byte [rax + 0x74], cl
cmp byte [rsp + 0x80], 0
setne cl
and cl, 1
mov byte [rax + 0x75], cl
cmp byte [rsp + 0x81], 0
setne cl
and cl, 1
mov byte [rax + 0x76], cl
cmp byte [rsp + 0xcc], 0
setne cl
and cl, 1
mov byte [rax + 0x77], cl
cmp byte [rsp + 0x82], 0
setne cl
and cl, 1
mov byte [rax + 0x78], cl
cmp byte [rsp + 0x83], 0
setne cl
and cl, 1
mov byte [rax + 0x79], cl
cmp byte [rsp + 0xc5], 0
setne cl
and cl, 1
mov byte [rax + 0x7a], cl
cmp byte [rsp + 0xc0], 0
setne cl
and cl, 1
mov byte [rax + 0x7b], cl
cmp byte [rsp + 0xd2], 0
setne cl
and cl, 1
mov byte [rax + 0x7c], cl
cmp byte [rsp + 0xc9], 0
setne cl
and cl, 1
mov byte [rax + 0x7d], cl
cmp byte [rsp + 0x94], 0
setne cl
and cl, 1
mov byte [rax + 0x7e], cl
cmp byte [rsp + 0x95], 0
setne cl
and cl, 1
mov byte [rax + 0x7f], cl
cmp byte [rsp + 0x96], 0
setne cl
and cl, 1
mov byte [rax + 0x80], cl
add rsp, 0x138
ret