Function at 0x18000a330
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x48
cmp byte [0x1801bb2aa], 0
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x40], rdi
movabs rdi, 0x7fffffff0000
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
je 0x18000a3ec
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov rcx, qword [0x1801bb2b8]
add rcx, 0x6a0
test ax, ax
je 0x18000a3b8
cmp rcx, 0x40000
jbe 0x18000a3ec
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a3ec
mov rcx, qword [rcx]
add rcx, 0x84
cmp rcx, 0x40000
jbe 0x18000a3ec
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x18000a3ec
mov dword [rcx], 0x3f800000
jmp 0x18000a3ec
cmp rcx, 0x40000
jbe 0x18000a3ec
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a3ec
mov rcx, qword [rcx]
add rcx, 0x84
cmp rcx, 0x40000
jbe 0x18000a3ec
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x18000a3ec
mov dword [rcx], 0x40400000
cmp byte [0x1801bb2b3], 0
je 0x18000a43a
mov rcx, qword [0x1801bb2b8]
add rcx, 0x698
cmp rcx, 0x40000
jbe 0x18000a43a
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a43a
mov rcx, qword [rcx]
xorps xmm0, xmm0
add rcx, 0x64
cmp rcx, 0x40000
jbe 0x18000a43a
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a43a
movss dword [rcx], xmm0
movss dword [rcx + 4], xmm0
cmp byte [0x1801bb2a2], 0
je 0x18000a4a4
mov rcx, qword [0x1801bb698]
add rcx, 0x34556d8
cmp rcx, 0x40000
jbe 0x18000a4a4
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a4a4
mov rcx, qword [rcx]
add rcx, 0xb8
cmp rcx, 0x40000
jbe 0x18000a4a4
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a4a4
mov rcx, qword [rcx]
add rcx, 0x18
cmp rcx, 0x40000
jbe 0x18000a4a4
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x18000a4a4
movss xmm0, dword [0x1800c9f60]
movss dword [rcx], xmm0
xor esi, esi
cmp byte [0x1801bb299], sil
je 0x18000a500
lea ecx, [rsi + 0x58]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000a500
mov rcx, qword [0x1801bb2b8]
add rcx, 0x8d0
cmp rcx, 0x40000
jbe 0x18000a500
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a500
mov rcx, qword [rcx]
add rcx, 0x38
cmp rcx, 0x40000
jbe 0x18000a500
lea rax, [rcx + 0xc]
cmp rax, rdi
jae 0x18000a500
mov dword [rcx], esi
mov qword [rcx + 4], 0x3f800000
cmp byte [0x1800c9f55], sil
je 0x18000a566
mov rcx, qword [0x1801bb2b8]
add rcx, 0x6a0
cmp rcx, 0x40000
jbe 0x18000a566
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a566
mov rcx, qword [rcx]
mov rdx, rcx
lea r8, [rcx + 0xc4]
cmp r8, 0x40000
jbe 0x18000a54b
lea rax, [r8 + 4]
cmp rax, rdi
jae 0x18000a54b
mov dword [r8], esi
lea rcx, [rdx + 0xc8]
cmp rcx, 0x40000
jbe 0x18000a566
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x18000a566
mov dword [rcx], esi
cmp byte [0x1801bb2cd], sil
je 0x18000a595
mov rcx, qword [0x1801bb2b8]
add rcx, 0x9a4
cmp rcx, 0x40000
jbe 0x18000a595
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x18000a595
mov dword [rcx], 0x3f800000
cmp byte [0x1801bb29b], sil
je 0x18000a5db
mov rcx, qword [0x1801bb2b8]
add rcx, 0x8c8
cmp rcx, 0x40000
jbe 0x18000a5db
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x18000a5c2
mov edx, dword [rcx]
jmp 0x18000a5d6
cmp rcx, 0x40000
jbe 0x18000a5db
lea rax, [rcx + 4]
mov edx, esi
cmp rax, rdi
jae 0x18000a5db
or edx, 4
mov dword [rcx], edx
cmp byte [0x1801bb29a], sil
je 0x18000a626
mov rcx, qword [0x1801bb2b8]
add rcx, 0x8c8
cmp rcx, 0x40000
jbe 0x18000a626
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x18000a608
mov edx, dword [rcx]
jmp 0x18000a61c
cmp rcx, 0x40000
jbe 0x18000a626
lea rax, [rcx + 4]
mov edx, esi
cmp rax, rdi
jae 0x18000a626
mov eax, esi
cmp edx, 4
sete al
mov dword [rcx], eax
cmp byte [0x1801bb282], sil
je 0x18000a66c
mov rax, qword [0x1801bb2b8]
lea rcx, [rax + 0x8c8]
lea rdx, [rax + 0x8cc]
cmp rcx, 0x400000
jbe 0x18000a66c
cmp rdx, rdi
jae 0x18000a656
mov eax, dword [rcx]
jmp 0x18000a666
cmp rcx, 0x400000
jbe 0x18000a66c
mov eax, esi
cmp rdx, rdi
jae 0x18000a66c
bts eax, 0x16
mov dword [rcx], eax
cmp byte [0x1801bb2a5], sil
lea rbp, str.user32
mov qword [rsp + 0x50], rbx
je 0x18000a72e
mov ecx, dword [0x1801bb3a0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000a72e
mov rax, qword [0x1801bb6f8]
mov rbx, qword [0x1801bb2b8]
test rax, rax
jne 0x18000a6e5
mov dword [rsp + 0x20], 0xe000c
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x28], rbp
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
call fcn.180007a90
mov rcx, rax
lea rdx, [0x180068dd0]
call fcn.180007920
mov qword [0x1801bb6f8], rax
mov ecx, dword [0x1801bb3a0]
call rax
test ax, ax
je 0x18000a72e
lea rcx, [rbx + 0x8d0]
cmp rcx, 0x40000
jbe 0x18000a72e
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a72e
mov rcx, qword [rcx]
add rcx, 0x38
cmp rcx, 0x40000
jbe 0x18000a72e
lea rax, [rcx + 0xc]
cmp rax, rdi
jae 0x18000a72e
mov qword [rcx], 0x3f800000
mov dword [rcx + 8], esi
cmp byte [0x1801bb29c], sil
je 0x18000a7e4
mov ecx, dword [0x1801bb39c]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000a7e4
mov rax, qword [0x1801bb7d8]
mov rbx, qword [0x1801bb2b8]
test rax, rax
jne 0x18000a79b
mov dword [rsp + 0x20], 0xe000c
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x28], rbp
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
call fcn.180007a90
mov rcx, rax
lea rdx, [0x180068dd0]
call fcn.180007920
mov qword [0x1801bb7d8], rax
mov ecx, dword [0x1801bb39c]
call rax
test ax, ax
je 0x18000a7e4
lea rcx, [rbx + 0x8d0]
cmp rcx, 0x40000
jbe 0x18000a7e4
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a7e4
mov rcx, qword [rcx]
add rcx, 0x38
cmp rcx, 0x40000
jbe 0x18000a7e4
lea rax, [rcx + 0xc]
cmp rax, rdi
jae 0x18000a7e4
mov dword [rcx], 0xbf800000
mov qword [rcx + 4], rsi
cmp byte [0x1801bb2c8], 0
mov rsi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x50]
je 0x18000a904
mov rax, qword [0x1801bb8b0]
test rax, rax
jne 0x18000a83f
mov dword [rsp + 0x20], 0xe000c
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x28], rbp
movaps xmm0, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm0
call fcn.180007a90
mov rcx, rax
lea rdx, [0x180068dd0]
call fcn.180007920
mov qword [0x1801bb8b0], rax
mov ecx, dword [0x1801bb398]
call rax
mov rcx, qword [0x1801bb698]
add rcx, 0x34556d8
test ax, ax
je 0x18000a8b1
cmp rcx, 0x40000
jbe 0x18000a904
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a904
mov rcx, qword [rcx]
add rcx, 0xb8
cmp rcx, 0x40000
jbe 0x18000a904
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a904
mov rcx, qword [rcx]
add rcx, 0x18
cmp rcx, 0x40000
jbe 0x18000a904
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x18000a904
mov dword [rcx], 0x41a00000
jmp 0x18000a904
cmp rcx, 0x40000
jbe 0x18000a904
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a904
mov rcx, qword [rcx]
add rcx, 0xb8
cmp rcx, 0x40000
jbe 0x18000a904
lea rax, [rcx + 8]
cmp rax, rdi
jae 0x18000a904
mov rcx, qword [rcx]
add rcx, 0x18
cmp rcx, 0x40000
jbe 0x18000a904
lea rax, [rcx + 4]
cmp rax, rdi
jae 0x18000a904
movss xmm0, dword [0x1800c9f60]
movss dword [rcx], xmm0
cmp byte [0x1801bb29f], 0
mov r15, qword [rsp + 0x30]
mov r14, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x58]
je 0x18000a931
mov rcx, qword [0x1801bb2b8]
add rsp, 0x48
jmp fcn.180008170
add rsp, 0x48
ret