Function at 0x14008b720
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
movsxd rax, dword [rcx]
lea r8, [0x1403428c0]
xor esi, esi
mov rdi, rcx
test eax, eax
js 0x14008b74b
cmp rax, 0xa6
jae 0x14008b74b
mov eax, dword [r8 + rax*4]
jmp 0x14008b74d
mov eax, esi
mov dword [rcx + 0x44], eax
movsxd rax, dword [rcx + 8]
test eax, eax
js 0x14008b766
cmp rax, 0xa6
jae 0x14008b766
mov eax, dword [r8 + rax*4]
jmp 0x14008b768
mov eax, esi
mov dword [rcx + 0x4c], eax
movsxd rax, dword [rcx + 0xc]
test eax, eax
js 0x14008b781
cmp rax, 0xa6
jae 0x14008b781
mov eax, dword [r8 + rax*4]
jmp 0x14008b783
mov eax, esi
mov dword [rcx + 0x50], eax
movsxd rax, dword [rcx + 0x14]
test eax, eax
js 0x14008b79c
cmp rax, 0xa6
jae 0x14008b79c
mov edx, dword [r8 + rax*4]
jmp 0x14008b79e
mov edx, esi
movsxd rax, dword [rcx + 0x1c]
mov dword [rcx + 0x58], edx
test eax, eax
js 0x14008b7b7
cmp rax, 0xa6
jae 0x14008b7b7
mov eax, dword [r8 + rax*4]
jmp 0x14008b7b9
mov eax, esi
mov dword [rcx + 0x60], eax
movsxd rax, dword [rcx + 0x10]
test eax, eax
js 0x14008b7d2
cmp rax, 0xa6
jae 0x14008b7d2
mov ecx, dword [r8 + rax*4]
jmp 0x14008b7d4
mov ecx, esi
movsxd rax, dword [rdi + 0x18]
mov dword [rdi + 0x54], ecx
test eax, eax
js 0x14008b7ed
cmp rax, 0xa6
jae 0x14008b7ed
mov ecx, dword [r8 + rax*4]
jmp 0x14008b7ef
mov ecx, esi
movsxd rax, dword [rdi + 0x24]
mov dword [rdi + 0x5c], ecx
test eax, eax
js 0x14008b808
cmp rax, 0xa6
jae 0x14008b808
mov eax, dword [r8 + rax*4]
jmp 0x14008b80a
mov eax, esi
mov dword [rdi + 0x68], eax
movsxd rax, dword [rdi + 0x28]
test eax, eax
js 0x14008b823
cmp rax, 0xa6
jae 0x14008b823
mov eax, dword [r8 + rax*4]
jmp 0x14008b825
mov eax, esi
mov dword [rdi + 0x6c], eax
movsxd rax, dword [rdi + 0x2c]
test eax, eax
js 0x14008b83e
cmp rax, 0xa6
jae 0x14008b83e
mov eax, dword [r8 + rax*4]
jmp 0x14008b840
mov eax, esi
mov dword [rdi + 0x70], eax
movsxd rax, dword [rdi + 0x30]
test eax, eax
js 0x14008b859
cmp rax, 0xa6
jae 0x14008b859
mov eax, dword [r8 + rax*4]
jmp 0x14008b85b
mov eax, esi
mov dword [rdi + 0x74], eax
movsxd rax, dword [rdi + 0x34]
test eax, eax
js 0x14008b874
cmp rax, 0xa6
jae 0x14008b874
mov eax, dword [r8 + rax*4]
jmp 0x14008b876
mov eax, esi
mov dword [rdi + 0x78], eax
movsxd rax, dword [rdi + 0x38]
test eax, eax
js 0x14008b88f
cmp rax, 0xa6
jae 0x14008b88f
mov eax, dword [r8 + rax*4]
jmp 0x14008b891
mov eax, esi
mov dword [rdi + 0x7c], eax
movsxd rax, dword [rdi + 0x20]
test eax, eax
js 0x14008b8aa
cmp rax, 0xa6
jae 0x14008b8aa
mov eax, dword [r8 + rax*4]
jmp 0x14008b8ac
mov eax, esi
mov dword [rdi + 0x64], eax
movsxd rax, dword [rdi + 0x3c]
test eax, eax
js 0x14008b8c5
cmp rax, 0xa6
jae 0x14008b8c5
mov eax, dword [r8 + rax*4]
jmp 0x14008b8c7
mov eax, esi
mov dword [rdi + 0x80], eax
movsxd rax, dword [rdi + 0x40]
test eax, eax
js 0x14008b8e3
cmp rax, 0xa6
jae 0x14008b8e3
mov eax, dword [r8 + rax*4]
jmp 0x14008b8e5
mov eax, esi
mov ecx, edx
mov dword [rdi + 0x84], eax
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
jne 0x14008b92f
mov ecx, dword [rdi + 0x60]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
jne 0x14008b92f
mov ecx, dword [rdi + 0x54]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
jne 0x14008b92f
mov ecx, dword [rdi + 0x5c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
jne 0x14008b92f
mov ecx, dword [rdi + 0x64]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14008bb52
mov ecx, dword [rdi + 0x58]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x40], r14
test ecx, ecx
je 0x14008b94b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14008b950
cmp dword [rdi + 0x58], esi
je 0x14008b96c
call fcn.14005fba0
movzx ebx, byte [rax]
call fcn.14005fba0
test bl, bl
sete cl
mov byte [rax], cl
call fcn.14007b070
mov byte [rax], sil
mov ecx, dword [rdi + 0x60]
mov r14d, 4
test ecx, ecx
je 0x14008b984
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14008b99d
mov ecx, dword [rdi + 0x60]
test ecx, ecx
je 0x14008ba2a
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14008ba2a
mov rax, qword gs:[0x58]
mov qword [rsp + 0x38], rbp
mov ebp, r14d
add rbp, qword [rax]
mov eax, dword [0x1405c0be4]
cmp eax, dword [rbp]
jle 0x14008b9ea
lea rcx, [0x1405c0be4]
call fcn.140131bc0
mov eax, dword [0x1405c0be4]
cmp eax, 0xffffffff
jne 0x14008b9ea
call fcn.140072850
lea rcx, [0x1405c0be4]
call fcn.140131b54
mov eax, dword [0x1405c0be4]
cmp byte [0x1405c09a0], sil
sete bl
cmp eax, dword [rbp]
mov rbp, qword [rsp + 0x38]
jle 0x14008ba24
lea rcx, [0x1405c0be4]
call fcn.140131bc0
cmp dword [0x1405c0be4], 0xffffffff
jne 0x14008ba24
call fcn.140072850
lea rcx, [0x1405c0be4]
call fcn.140131b54
mov byte [0x1405c09a0], bl
mov ecx, dword [rdi + 0x54]
test ecx, ecx
je 0x14008ba3c
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14008ba4d
mov ecx, dword [rdi + 0x54]
test ecx, ecx
je 0x14008ba5b
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14008ba5b
cmp byte [reloc.WS2_32.dll_accept], sil
sete byte [0x14050d788]
mov ecx, dword [rdi + 0x5c]
test ecx, ecx
je 0x14008ba6d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14008ba7e
mov ecx, dword [rdi + 0x5c]
test ecx, ecx
je 0x14008ba9a
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14008ba9a
call fcn.14007b070
movzx ebx, byte [rax]
call fcn.14007b070
test bl, bl
sete cl
mov byte [rax], cl
call fcn.14005fba0
mov byte [rax], sil
mov ecx, dword [rdi + 0x64]
test ecx, ecx
je 0x14008baac
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x14008bac5
mov ecx, dword [rdi + 0x64]
test ecx, ecx
je 0x14008bb48
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14008bb48
mov rax, qword gs:[0x58]
mov ebx, r14d
add rbx, qword [rax]
mov eax, dword [0x1405c0be4]
cmp eax, dword [rbx]
jle 0x14008bb0c
lea rcx, [0x1405c0be4]
call fcn.140131bc0
mov eax, dword [0x1405c0be4]
cmp eax, 0xffffffff
jne 0x14008bb0c
call fcn.140072850
lea rcx, [0x1405c0be4]
call fcn.140131b54
mov eax, dword [0x1405c0be4]
cmp byte [0x1405c09bd], sil
sete sil
cmp eax, dword [rbx]
jle 0x14008bb41
lea rcx, [0x1405c0be4]
call fcn.140131bc0
cmp dword [0x1405c0be4], 0xffffffff
jne 0x14008bb41
call fcn.140072850
lea rcx, [0x1405c0be4]
call fcn.140131b54
mov byte [0x1405c09bd], sil
mov rbx, qword [rsp + 0x30]
mov r14, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret